我正在尝试使用UIBezierPath
绘制拱形。没有错误或警告,我看不到任何明显的错误,但它不会画。这是我的代码:
- (void)drawRect:(CGRect)rect {
CGFloat a = 10;
CGFloat width = CGRectGetWidth(self.bounds);
CGFloat height = CGRectGetHeight(self.bounds);
CGPoint center = CGPointMake(width/2, height/2);
CGFloat radius = MAX(width, height);
CGFloat archWidth = 18;
CGFloat archLengthPerA = 5;
CGFloat startAngle = 3 * M_PI /2;
CGFloat endAngle = archLengthPerA * a + startAngle;
UIBezierPath* path = [UIBezierPath bezierPath];
[path addArcWithCenter:center
radius:radius
startAngle:startAngle
endAngle:endAngle
clockwise:YES];
path.lineWidth = archWidth;
[[UIColor colorWithRed:255 green:17 blue:0 alpha:1.0] setStroke];
[path stroke];
}
我把它放在一个单独的视图中进行测试,它在_myString
上崩溃了,所以它与它有什么关系?我尝试添加一个断点来查看它是否在没有它的情况下工作但是它再次崩溃了。任何想法为什么它不起作用?
答案 0 :(得分:1)
radius
的值太大,因此弧线会在视图之外绘制。
缩小规模。例如:
CGFloat radius = MIN(width/2, height/2);