我有一个drawRect实现:
- (void)drawRect:(CGRect)rect
{
CGContextRef ctx = UIGraphicsGetCurrentContext();
if (self.colorToRender)
{
CGContextSetStrokeColorWithColor(ctx, self.colorToRender.CGColor);
}
else
{
CGContextSetStrokeColorWithColor(ctx,[UIColor whiteColor].CGColor);
}
CGContextBeginPath(ctx);
CGContextMoveToPoint(ctx, self.center.x, self.center.y);
CGContextAddLineToPoint(ctx, self.pointToRender.x, self.pointToRender.y);
CGContextStrokePath(ctx);
}
每次渲染一条线,但渲染的线条永远不会留在屏幕上。
如何将新线渲染到屏幕以保留先前渲染的线?
答案 0 :(得分:0)
添加一行时,将该行添加到可在drawRect方法中使用的数组中,以确定要绘制的行。
- (void)drawRect:(CGRect)rect
{
CGContextRef ctx = UIGraphicsGetCurrentContext();
if (self.colorToRender)
{
CGContextSetStrokeColorWithColor(ctx, self.colorToRender.CGColor);
}
else
{
CGContextSetStrokeColorWithColor(ctx,[UIColor whiteColor].CGColor);
}
// For each line you want to draw:
for (MyLine *thisLine in myLines) {
CGContextMoveToPoint(ctx, thisLine.startPoint.x, thisLine.startPoint.y);
CGContextAddLineToPoint(ctx, thisLine.endPoint.x, thisLine.endPoint.y);
CGContextStrokePath(ctx);
}
}