UIBezierPath 不绘制圆弧

UIBezierPath not drawing arc

我正在尝试画一个非常简单的圆。这是我的代码:

CameraButtonView *buttonView = [[CameraButtonView alloc]initWithFrame:CGRectMake((self.view.frame.size.width / 2) - 45, self.view.frame.size.height * 0.8, 90, 90)];
buttonView.layer.cornerRadius = buttonView.frame.size.width / 2;
buttonView.layer.borderWidth = 2;
buttonView.backgroundColor = [UIColor clearColor];
buttonView.layer.borderColor = [UIColor greenColor].CGColor;
buttonView.clipsToBounds = YES;

[previewView addSubview:buttonView];

然后,在 drawRect 中:

 UIBezierPath *path1 = [UIBezierPath bezierPath];
[path1 addArcWithCenter:self.center radius:(20) startAngle:0 endAngle:6.28 clockwise:YES];
[path1 setLineWidth:6];
[[UIColor redColor] setStroke];
[path1 stroke];

我已经设置了圆心和半径,指定了线宽和描边颜色,并调用了描边。我在 drawRect 中设置了断点以确保路径不为零,而且确实不是。什么都没画。

我在屏幕上唯一看到的是一个绿色圆圈,它来自我设置圆角半径的视图控制器中的代码。我试着打电话给 [buttonView setNeedsDisplay];同样,这没有帮助。我也尝试了贝塞尔曲线路径的不同初始化,例如用圆弧初始化而不是创建路径然后调用 addArcWithCenter。

我做错了什么?

注意视图中心不是视图本身的中心,而是视图在父视图坐标中的中心位置。可能你正在画出屏幕。

The center is specified within the coordinate system of its superview and is measured in points. Setting this property changes the values of the frame properties accordingly.

如果您想知道视图的中心,请执行以下操作:

CGPointMake(CGRectGetMidX(self.bounds), CGRectGetMidY(self.bounds))