创建单一颜色的UIImage
+(UIImage*)createImageWithColor:(UIColor*) color
{
CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextFillRect(context, rect);
UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return theImage;
}
创建特定形状的image :根据需要设置开始点坐标,连线形成特定图形,下面以气泡图为例
+ (UIImage *)bubbleImageWithColor:(UIColor *)color{
CGFloat wide = 100;
CGFloat height = 30;
UIGraphicsBeginImageContextWithOptions(CGSizeMake(wide, height), NO, 0);
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = UIGraphicsGetCurrentContext();
CGFloat radius = 6.0;
Bezier Drawing
UIBezierPath *bezierPath = [UIBezierPath bezierPath];
CGContextMoveToPoint(context, 10, height-10);
CGContextAddLineToPoint(context,0,height);
CGContextAddArcToPoint(context, wide-10, height, wide-10, 0, radius);//设置弧线的方法:三个点连线以radius为半径做切线
CGContextAddArcToPoint(context, wide-10, 0, 10, 0, radius);
CGContextAddArcToPoint(context, 10, 0, 10, height, radius);
[bezierPath closePath];
CGContextSaveGState(context);
[color setFill];
[bezierPath fill];
CGContextRestoreGState(context);
Cleanup
CGColorSpaceRelease(colorSpace);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
效果图如下: