我需要画两条线。我可以使用相同的 UIView 子类来进行两次绘制吗?创建 UIView 之后
draw2D *myView = [[draw2D alloc] initWithFrame:myRect];
如果我更改使用变量的方法,我可以更改这些值并调用drawRect方法来绘制不同的线吗?
- (void)drawRect:(CGRect)rect
{
CGContextRef context01 = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context01, 1.0);
CGContextSetStrokeColorWithColor(context01, [[UIColor blackColor]CGColor]);
CGContextMoveToPoint(context01, 0, 0);
CGContextAddLineToPoint(context01, 800, 0);
CGContextStrokePath(context01);
CGContextRef context02 = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context02, 1.0);
CGContextSetStrokeColorWithColor(context02, [[UIColor blackColor]CGColor]);
CGContextMoveToPoint(context02, 453, 0);
CGContextAddLineToPoint(context02, 453, 800);
CGContextStrokePath(context02);
}
最佳答案
只需在 View 上调用setNeedsDisplay即可强制再次调用其drawRect方法。
它不会立即重新绘制 View ,但会将其标记为需要在下一个 View 更新周期中再次绘制(大约每 60 秒更新一次)。这意味着您可以多次调用 setNeedsDisplay 而不会造成性能损失。
关于iphone - 创建自定义 UI 后调用drawRect?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8975837/