iPhone 应用程序 - 为什么我的 CGContext 圆圈看起来像黑色方块?

发布于 2024-11-19 00:02:13 字数 626 浏览 2 评论 0原文

我的 iPhone 应用程序自定义 UIView 类中的这个 drawRect 方法有什么问题?它应该绘制一个彩色圆圈,但它绘制了一个具有适当宽度和高度的黑色正方形。

- (void)drawRect:(CGRect)rect {
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetLineWidth(context, 2.0);
    UIColor *c = [UIColor redColor];
    const CGFloat *components = CGColorGetComponents([c CGColor]);
    CGFloat red = components[0];
    CGFloat green = components[1];
    CGFloat blue = components[2];
    CGFloat al = components[3];     
    CGContextSetRGBFillColor(context, red, green, blue, al);
    CGContextFillEllipseInRect(context, CGRectMake(x, y, width, width));
}

What is wrong with this drawRect method in my iPhone app custom UIView class? It's supposed to draw a colored circle, however it draws a black square of proper width and height.

- (void)drawRect:(CGRect)rect {
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetLineWidth(context, 2.0);
    UIColor *c = [UIColor redColor];
    const CGFloat *components = CGColorGetComponents([c CGColor]);
    CGFloat red = components[0];
    CGFloat green = components[1];
    CGFloat blue = components[2];
    CGFloat al = components[3];     
    CGContextSetRGBFillColor(context, red, green, blue, al);
    CGContextFillEllipseInRect(context, CGRectMake(x, y, width, width));
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

骷髅 2024-11-26 00:02:13

试试这个:

- (void)drawRect:(CGRect)rect
{
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    CGContextAddEllipseInRect(ctx, CGRectMake(x, y, width, width));
    CGContextSetFillColor(ctx, CGColorGetComponents([[UIColor redColor] CGColor]));
    CGContextFillPath(ctx);
}

Try this:

- (void)drawRect:(CGRect)rect
{
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    CGContextAddEllipseInRect(ctx, CGRectMake(x, y, width, width));
    CGContextSetFillColor(ctx, CGColorGetComponents([[UIColor redColor] CGColor]));
    CGContextFillPath(ctx);
}
回眸一笑 2024-11-26 00:02:13

希望这一切顺利。

- (void)drawRect:(CGRect)rect {
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetLineWidth(context, 2.0);
    CGContextSetFillColorWithColor(context , [UIColor redColor].CGColor;
    CGContextFillEllipseInRect(context, CGRectMake(x, y, width, width));
}

Hope this works fine.

- (void)drawRect:(CGRect)rect {
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetLineWidth(context, 2.0);
    CGContextSetFillColorWithColor(context , [UIColor redColor].CGColor;
    CGContextFillEllipseInRect(context, CGRectMake(x, y, width, width));
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文