画一个半填充颜色的圆圈

时间:2015-03-10 06:30:46

标签: objective-c iphone ios8 uibezierpath

我必须实现半填充颜色的圆圈。我找到了第三方api,但我不想使用它们。没有第三方有没有办法画圆圈。我想这样:http://justpaste.it/jv07

3 个答案:

答案 0 :(得分:0)

有几种方法可以达到这种效果。可能最简单的方法是制作灰色圆圈,然后制作部分圆弧。

一个有用的绘图范例是将每个区域视为一个单独的东西,分层设置。你绘制的顺序是它们从后到前显示的顺序。

答案 1 :(得分:0)

您可以将CAShapeLayer strokeEnd属性用于部分椭圆形笔划。

        CAShapeLayer * oval3 = [CAShapeLayer layer];
        oval3.frame              = CGRectMake(0, 0, 100, 100);
        oval3.fillColor          = nil;
        oval3.strokeColor        = [UIColor greenColor].CGColor;
        oval3.lineWidth          = 13;
        oval3.strokeEnd          = 0.6;
        UIBezierPath*  oval3Path = [UIBezierPath bezierPathWithOvalInRect:oval3.bounds];
        oval3.path = oval3Path.CGPath;

答案 2 :(得分:0)

这将绘制一个半圆,并以快速4.2的一半填充

let shape = CAShapeLayer()
shape.frame = CGRect(x: 0, y: 0, width: 100, height: 100)
shape.fillColor = UIColor.green.cgColor
let path = UIBezierPath(arcCenter: CGPoint(x: 50, y: 50), radius: 50, startAngle: 3*CGFloat.pi/2, endAngle: CGFloat.pi/2, clockwise: false)
shape.path = path.cgPath

enter image description here

有关更多信息 https://developer.apple.com/documentation/uikit/uibezierpath/1624358-bezierpathwitharccenter