我要在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);