I try to make a 20x20 UIImage with a simple blue circle. I try with this function, but the result is a blue circle in a black square. How do I remove the black square around the circle?
Function:
+ (UIImage *)blueCircle {
static UIImage *blueCircle = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
UIGraphicsBeginImageContextWithOptions(CGSizeMake(20.f, 20.f), YES, 0.0f);
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextSaveGState(ctx);
CGRect rect = CGRectMake(0, 0, 20, 20);
CGContextSetFillColorWithColor(ctx, [UIColor cyanColor].CGColor);
CGContextFillEllipseInRect(ctx, rect);
CGContextRestoreGState(ctx);
blueCircle = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
});
return blueCircle;
}
actual result:
Thanks for the Q&A! Swift code as below:
Swift 3 version provided by Schemetrical:
A custom initializer for creating a circle with a specific diameter and color:
You need to include alpha channel into your bitmap:
UIGraphicsBeginImageContextWithOptions(..., NO, ...)
if you want to see what is behind the corners.Swift 3 & 4:
Swift autocorrect is godly. Thanks to Valentin.
Xamarin.iOS sample:
Try this