相关疑难解决方法(0)

画一个简单的圆圈uiimage

我试着用一个简单的蓝色圆圈制作一个20x20的UIImage.我尝试使用此功能,但结果是黑色方块中的蓝色圆圈.如何移除圆圈周围的黑色方块?

功能:

+ (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;
}
Run Code Online (Sandbox Code Playgroud)

实际结果: 在此输入图像描述

geometry core-graphics uiimage cgcontext ios

38
推荐指数
3
解决办法
2万
查看次数

CGColorGetComponents有问题吗?

当我CGColorGetComponentsCGColora返回时UIColor,它似乎正常工作,除了白色和黑色.

这是代码......

CGColorRef myColorRef = [[UIColor whiteColor] CGColor];

const CGFloat * colorComponents = CGColorGetComponents(myColorRef);

NSLog(@"r=%f, g=%f, b=%f, a=%f",
    colorComponents[0],
    colorComponents[1],
    colorComponents[2],
    colorComponents[3]);
Run Code Online (Sandbox Code Playgroud)

这个日志

r=1.000000, g=1.000000, b=0.000000, a=0.000000
Run Code Online (Sandbox Code Playgroud)

注意B和A都是零,而不是一个.

如果你替换其他颜色,如redColor,blueColor等,它可以工作...... RGB和A值设置为人们所期望的.但同样,黑色和白色产生奇怪的结果.这个功能有问题,还是我应该做一些解决方法/任务?

iphone objective-c uicolor ios

18
推荐指数
1
解决办法
4111
查看次数

使用核心图形为iOS绘制空心圆

我正在寻找如何CGContext在iOS中使用Core Graphics()绘制空心圆的方法.我尝试使用代码来做到这一点:

- (void)drawRect:(CGRect)rect {
      [super drawRect:rect];
      CGContextRef ctx = UIGraphicsGetCurrentContext();
      CGContextSetLineWidth(ctx, 8.0);
      CGContextSetStrokeColor(ctx, CGColorGetComponents([[UIColor redColor] CGColor]));
      CGContextSetFillColor(ctx, CGColorGetComponents([[UIColor blueColor] CGColor]));
      CGContextFillEllipseInRect(ctx, rect);
      CGContextFillPath(ctx);
}
Run Code Online (Sandbox Code Playgroud)

但它画出了圆圈.由于这个问题在这里已经讨论过了,但是像这样的其他例子只给我填充了圆圈.

core-graphics objective-c cgcontext ios

2
推荐指数
1
解决办法
2459
查看次数