轉(zhuǎn)載
UIBezierPath通過
- (void)addArcWithCenter:(CGPoint)center radius:(CGFloat)radius startAngle:(CGFloat)startAngle endAngle:(CGFloat)endAngle clockwise:(BOOL)clockwise
可以畫出一段弧線。
看下各個參數(shù)的意義:
center:圓心的坐標(biāo)
radius:半徑
startAngle:起始的弧度
endAngle:圓弧結(jié)束的弧度
clockwise:YES為順時針剧包,No為逆時針
方法里面主要是理解startAngle與endAngle,剛開始我搞不清楚一段圓弧從哪算起始和終止融击,比如弧度為0的話,是從上下左右哪個點開始算
[objc] view plaincopy
<embed id="ZeroClipboardMovie_1" src="http://csdnimg.cn/public/highlighter/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="16" height="16" name="ZeroClipboardMovie_1" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=1&width=16&height=16" wmode="transparent" style="box-sizing: border-box;">
CAShapeLayer *layer = [[CAShapeLayer alloc] init];
layer.name = @"Radius";
CGFloat lineWidth = 10;
UIBezierPath *path = [UIBezierPath bezierPath];
path.lineWidth = lineWidth;
path.lineCapStyle = kCGLineCapButt;
CGPoint center = CGPointMake(self.bounds.size.width/2, self.bounds.size.height/2);
CGFloat radius = (self.bounds.size.width - lineWidth)/2;
CGFloat startAngle = -((float)M_PI)/7; //
CGFloat endAngle = ((float)M_PI)-startAngle ;
[[UIColor whiteColor] set];
[path addArcWithCenter:center radius:radius startAngle:startAngle endAngle:endAngle clockwise:YES];
[path stroke];
[path closePath];