这是我第一次画画,所以它一定是非常愚蠢的东西,但我的drawRect:方法不起作用...... 这是我的代码:
- (void)drawRect:(CGRect)rect {
CGPoint center = CGPointMake(self.bounds.origin.x + self.bounds.size.width / 2, self.bounds.origin.y + self.bounds.size.height / 2);self.bounds.origin.y + self.bounds.size.height / 2)
CGContextRef ctx = UIGraphicsGetCurrentContext();
[[UIColor redColor] setStroke];
CGFloat radius = (self.bounds.size.width > self.bounds.size.height) ? self.bounds.size.width - 30 : self.bounds.size.height - 30;
CGContextBeginPath(ctx);
CGContextAddArc(ctx, center.x, center.y, radius, 0, 2 * M_PI, YES);
CGContextStrokePath(ctx);
}
答案 0 :(得分:3)
弧的半径是从其中心开始测量的。您几乎使用整个视图的宽度/高度,以便将弧线绘制在可见区域之外。使用较小的半径,你会看到你的弧。
顺便说一下,如果你想要的只是绘制一个圆(角度为2π的弧是相同的),CGContextAddEllipseInRect
更容易使用。
答案 1 :(得分:2)
您正在视图外部绘制圆圈。 CGContextAddArc
将radius作为参数。在您的情况下,您给出方法直径。
快速修复:
radius/=2;
答案 2 :(得分:0)
你的例子正在运作。它实际上是绘图,但你看不到圆,因为半径变量可能是一个很大的值,使得圆被绘制到视图的边界之外。 只需用一个值(例如20)替换手动半径值,您就会发现它工作正常。
此致