我正在尝试使用Core Graphics绘制一个半圆并用一些颜色填充它。我想用CALayer替换颜色与图像。任何人都可以帮助如何做到这一点谢谢!
代码就在这里。
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context, 2);
CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);
CGContextMoveToPoint(context, 0, 500);
CGContextAddArc(context, 60, 500, 50, 90, 180, 0);
CGContextStrokePath(context);
答案 0 :(得分:7)
您需要以radians指定角度,而不是度数。 180度=π弧度。所以在你的例子中:
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context, 2);
CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);
CGContextMoveToPoint(context, 10, 500);
CGContextAddArc(context, 60, 500, 50, M_PI / 2, M_PI, 0);
CGContextStrokePath(context);
请注意,我还将起点(... MoveToPoint)向右移动了10个像素,因为这是弧开始的位置。
答案 1 :(得分:5)
对于我来说,给定的答案在iOS 7上无效!
我创建了一个小类来创建一个角度为百分比的圆。
也许你想看看它。
如果你只想创造一个半圆,你仍然可以采用这种方法
这是:GitHub Link
这就是它的样子:
答案 2 :(得分:0)
CGPoint circleCenter = CGPointMake(self.bounds.size.width / 2, self.bounds.size.height / 2);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context, 2);
CGContextMoveToPoint(context, circleCenter.x, circleCenter.y);
CGContextAddArc(context, circleCenter.x, circleCenter.y, 50, 90, 180, 0);
CGContextAddLineToPoint(context, circleCenter.x, circleCenter.y);
CGContextSetFillColorWithColor(context, [UIColor colorWithPatternImage:[UIImage imageNamed:@"add-icon.png"]].CGColor);
CGContextFillPath(context);
CGContextAddArc(context, circleCenter.x, circleCenter.y, 50, 180, 90, 0);
CGContextAddLineToPoint(context, circleCenter.x, circleCenter.y);
CGContextSetFillColorWithColor(context, [UIColor colorWithPatternImage:[UIImage imageNamed:@"appIcon_58.png"]].CGColor);
CGContextFillPath(context);
答案 3 :(得分:-2)