我正在开发一个涉及在屏幕上绘制小图形(线和路径)的iOS项目。
我最初选择使用Quartz而不是OpenGL,因为我需要显示一些基本的形状,并且需要每5秒更新一次,所以我认为Quartz更好,也更容易。
我发现我不能简单地在视图中绘制,但我必须子类化UIView并在drawRect方法中绘制。
在我的项目中,用户应该能够在图形上进行收缩和缩放,所以我计划在视图中添加一个收缩手势,但我对如何在收缩之后重新绘制所有内容持怀疑态度。我是否必须删除所有内容并重新添加子视图,以便触发drawRect,或者是否有更好的方法来执行此操作?
非常感谢。
发布于 2013-02-05 21:24:42
在使用Quartz时,从技术上讲,您不必继承视图并替换drawRect,但这可能是最佳实践。当您想要重绘窗口时,只需调用[self setNeedsDisplay]; (如果从子类视图调用,或者如果从视图控制器调用,则调用[self.view setNeedsDisplay]; )。这将导致为您调用drawRect方法,它会为您处理所有事情。
有关详细信息,请参阅setNeedsDisplay文档。
https://stackoverflow.com/questions/14708018
复制相似问题