我正在开发一个iOS项目,涉及在屏幕上绘制小图形(线条和路径)。
我最初选择使用Quartz而不是OpenGL,因为我需要显示一些基本形状,我需要每5秒更新一次,所以我认为Quartz更好更容易。
我发现我不能简单地在视图中绘制,但我必须将UIView子类化并在drawRect方法中绘制。
在我的项目中,用户应该能够捏合和缩放图形,所以我计划在视图中添加一个pinchgesture,但我怀疑如何在捏之后重绘一切。我是否必须删除所有内容并重新添加子视图以使drawRect触发或有更好的方法来执行此操作吗?
非常感谢。
答案 0 :(得分:1)
使用Quartz时,从技术上讲, 不能将视图子类化并替换drawRect
,但这可能是最佳实践。如果要重绘窗口,只需调用[self setNeedsDisplay];
(如果从子视图调用,或[self.view setNeedsDisplay];
,如果从视图控制器执行此操作)。这将导致您为您调用drawRect
方法,并为您处理所有事情。
有关详细信息,请参阅setNeedsDisplay
文档。