我需要绘制我的uiview而不使用drawrect方法,但我不知道如何在任何时间点动态获取图形上下文?不使用drawrect方法获取UIView的上下文
例如:我需要添加一行,当用户从我的工具栏中弹出添加行。
我需要绘制我的uiview而不使用drawrect方法,但我不知道如何在任何时间点动态获取图形上下文?不使用drawrect方法获取UIView的上下文
例如:我需要添加一行,当用户从我的工具栏中弹出添加行。
这是无法完成的。你将不得不有某种标记来表示一个新行,然后调用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();
这样你就不会有状态,但你只需将行添加到图像。
您的看法有drawRect:
以外没有图形上下文。您不能在drawRect:
之外进行任意绘图调用,并让它们保持不变。
如果您需要动态添加行等到视图,您必须首先将行存储在数组或其他结构中,然后遍历drawRect:
中的该结构并绘制每个项目。
或者,使每行自定义视图本身(或图层),并将其添加为子视图。
非常感谢你:)它帮助了我很多:) –