• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

iphone - 为什么尝试使用 drawRect 绘制彩色圆圈时颜色是透明的?

[复制链接]
菜鸟教程小白 发表于 2022-12-13 02:02:57 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在尝试在 UIView 中绘制一个简单的圆圈。我知道我可以使用 QuartzCore 做到这一点,但我想使用 drawRect 方法:

- (void)drawRectCGRect)rect
{
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    CGContextAddEllipseInRect(ctx, rect);
    CGContextSetFillColor(ctx, CGColorGetComponents([[UIColor greenColor] CGColor]));
    CGContextFillPath(ctx);
}

当我设置 [UIColor whiteColor] 时,上面的代码不起作用。当 [UIColor whiteColor] View 会变得透明..

为什么当颜色为白色时 View 变得透明?我怎样才能画一个白色的圆圈?



Best Answer-推荐答案


CGContextSetFillColor 的文档说明第二个参数如下:

An array of intensity values describing the color to set. The number of array elements must equal the number of components in the current fill color space, plus an additional component for the alpha value.

greenColor 来自 RGB 颜色空间。但 whiteColor 不是。因此,在使用 whiteColor 时,您最终会传递错误数量的颜色分量。

一个更简单的解决方案是替换:

CGContextSetFillColor(ctx, CGColorGetComponents([[UIColor greenColor] CGColor]));

与:

[[UIColor greenColor] set];

或:

[[UIColor whiteColor] set];

更新:

如果您真的想使用 Core Graphics,另一种选择是:

CGContextSetFillColorWithColor(ctx, [UIColor greenColor].CGColor);

关于iphone - 为什么尝试使用 drawRect 绘制彩色圆圈时颜色是透明的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15732103/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap