我不太确定,我在问什么...
...但是如果在单独的方法中创建图层合成,并将它们绘制到drawRect:方法之外的视图......那么我的应用程序性能是否会被提升?
我实际上是一个puzzlePiece的子类:UIView类,其中拼图被渲染,但是现在使用setNeedsDisplay调用重绘,因为绘图实现发生在drawRect:方法中。该应用程序滞后。
如果我摆脱所谓的drawRect:方法,我可以提高性能吗?
答案 0 :(得分:1)
我认为你想要做的就是拥有一个覆盖整个游戏区域的单一,简单的UIView。然后将每个瓷砖放在CALayer中,并将所有CALayers连接到UIView并移动它们并旋转它们。然后根本不应该是-drawRect:根本不需要。你将在你的图层中完成所有绘图,你应该以这种方式获得最佳性能。 CALayer原则上类似于UIView,但重量更轻(更快更简单)。 CALayer基本上是一个只能画画的视图;它无法处理触摸或事件。它的父视图必须为它做到这一点。但是,让CALayer快得多。