2011-07-05 24 views

回答

5

这是无法完成的。你将不得不有某种标记来表示一个新行,然后调用setNeedsDisplay方法,以便调用drawRect:方法。您可以检查drawRect:方法中的标记并相应地绘制线条。

您将不得不保存状态。可能添加了一系列行,以便您可以在调用drawRect:方法时使用它来绘制视图。

另一种

您可以使用图像视图用于这一目的。你可以做到这一点,

UIGraphicsBeginImageContext(imageView.frame.size); 
[imageView.image drawInRect:CGRectMake(0, 0, imageView.frame.size.width, imageView.frame.size.height)]; 
/* Draw line here */ 
imageView.image = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

这样你就不会有状态,但你只需将行添加到图像。

+0

非常感谢你:)它帮助了我很多:) –

2

您的看法drawRect:以外没有图形上下文。您不能在drawRect:之外进行任意绘图调用,并让它们保持不变。

如果您需要动态添加行等到视图,您必须首先将行存储在数组或其他结构中,然后遍历drawRect:中的该结构并绘制每个项目。

或者,使每行自定义视图本身(或图层),并将其添加为子视图。