iOS UIBezierPath画圆求助

工作背景

工作中有一个需求是画圆统计图,这三个圆弧在终点都是圆形的,所以lineCapStyle 设置为 kCGLineCapSquare,但是在实际开发中,其中一个圆弧会被覆盖一部分,导致图层的显示错误。

代码

       // 精选
       self.normalAmount = 3000;
        // 活动
        self.activityAmount = 3000;
        // 特权
        self.newbieAmount = 30000;
复制代码
 // 精选圈
        UIBezierPath * normalPath = [UIBezierPath bezierPathWithArcCenter:CGPointMake(radius, radius)
                                                                   radius:88
                                                               startAngle:startPoint
                                                                 endAngle:startPoint + normalArc
                                                                clockwise:YES];
        [normalPath setLineWidth:15];
        [[UIColor colorWithRed:55/255.0f green:187/255.0f blue:255/255.0f alpha:1] setStroke];
        // 终点类型
        /*
         kCGLineCapButt,
         kCGLineCapRound,
         kCGLineCapSquare
         */
       normalPath.lineCapStyle = kCGLineCapRound;
       
        [normalPath stroke];
        
        // 活动标
        UIBezierPath * activityPath = [UIBezierPath bezierPathWithArcCenter:CGPointMake(radius, radius)
                                                                   radius:88
                                                               startAngle:startPoint + normalArc
                                                                 endAngle:startPoint + normalArc + activityArc
                                                                clockwise:YES];
        [activityPath setLineWidth:15];
        [[UIColor colorWithRed:47/255.0f green:210/255.0f blue:205/255.0f alpha:1] setStroke];
        // 终点类型
        activityPath.lineCapStyle = kCGLineCapRound;
       
        [activityPath stroke];
        
        // 特权标
        UIBezierPath * newbiePath = [UIBezierPath bezierPathWithArcCenter:CGPointMake(radius, radius)
                                                                     radius:88
                                                                 startAngle:startPoint + normalArc + activityArc
                                                                   endAngle:startPoint + normalArc + activityArc + newbieArc
                                                                  clockwise:YES];
        [newbiePath setLineWidth:15];
        [[UIColor colorWithRed:255/255.0f green:184/255.0f blue:83/255.0f alpha:1] setStroke];
        // 终点类型
        newbiePath.lineCapStyle = kCGLineCapRound;
      
        [newbiePath stroke];
复制代码

lineCapStyle 类型为 kCGLineCapRound 时的显示:

lineCapStyle 类型为 kCGLineCapButt 时的显示:

求助

在github 上找了一些类似的demo,只有显示一段弧为圆形的。没有像这样是3段,终点类型都是kCGLineCapRound的,如果有大神知道请在评论给小弟引路?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值