1

我正在开发一个涉及在屏幕上绘制小图形(线条和路径)的 iOS 项目。

我最初选择使用 Quartz 而不是 OpenGL,因为我需要显示一些基本的形状,并且需要每 5 秒更新一次,所以我认为 Quartz 更好更简单。

我发现我不能简单地在视图中绘制,但我必须继承一个 UIView 并在 drawRect 方法中绘制。

在我的项目中,用户应该能够在图形上进行捏合和缩放,所以我计划在视图中添加一个捏合手势,但我对如何在捏合后重新绘制所有内容持怀疑态度。我是否必须删除所有内容并重新添加子视图以便触发 drawRect 或者有更好的方法来做到这一点?

非常感谢。

4

1 回答 1

1

使用 Quartz 时,从技术上讲,您不必视图进行子类化并替换drawRect,但这可能是最佳实践。当您想重绘窗口时,只需调用[self setNeedsDisplay];(如果从子类视图调用,或者[self.view setNeedsDisplay];从视图控制器调用)。这将导致为您调用您的drawRect方法,它会为您处理一切。

有关更多信息,请参阅setNeedsDisplay文档。

于 2013-02-05T13:24:41.920 回答