shrimp-hamburger 2013-04-01 01:55 采纳率: 0%
浏览 4858
已采纳

iphone使用drawRect画圆

我要在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],视图就变成了透明的。

为什么设置白色但是视图变透明?怎么样画圈?

  • 写回答

1条回答

  • vikeyToy 2013-04-01 02:26
    关注

    greenColor 来自RGB颜色,但是whiteColor不是,所以你用错了。

    最好的方法是去掉: CGContextSetFillColor(ctx, CGColorGetComponents([[UIColor greenColor] CGColor]));

    换成:

    [[UIColor greenColor] set];
    

    或者

    [[UIColor whiteColor] set];
    

    另外一点,如果你需要Core Graphics,代码如下:

    CGContextSetFillColorWithColor(ctx, [UIColor greenColor].CGColor);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料