我要在UIView
中画一个简单的圆形。我不想用QuartzCore
,能不能用drawRect
实现?
- (void)drawRect:(CGRect)rect
{
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextAddEllipseInRect(ctx, rect);
CGContextSetFillColor(ctx, CGColorGetComponents([[UIColor greenColor] CGColor]));
CGContextFillPath(ctx);
}
上述代码在设置[UIColor whiteColor]
时就不工作。在设置了[UIColor whiteColor]
,视图就变成了透明的。
为什么设置白色但是视图变透明?怎么样画圈?
greenColor
来自RGB
颜色,但是whiteColor
不是,所以你用错了。
最好的方法是去掉:
`
CGContextSetFillColor(ctx, CGColorGetComponents([[UIColor greenColor] CGColor]));
`
换成:
`
[[UIColor greenColor] set];
`
或者
`
[[UIColor whiteColor] set];
`
另外一点,如果你需要Core Graphics
,代码如下:
`
CGContextSetFillColorWithColor(ctx, [UIColor greenColor].CGColor);
`
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。