0

我不确定,我在问什么...

...但是如果在单独的方法中合成图层,并将它们绘制到 drawRect: 方法之外的视图中... ...那么我的应用程序性能会提高吗?

我实际上是一个puzzlePiece:UIView 类的子类,拼图在其中被渲染,但是现在使用setNeedsDisplay 调用重绘,因为绘图实现发生在drawRect: 方法中。应用程序滞后。

如果我摆脱所谓的 drawRect: 方法,我可以提高性能吗?

想要实现的东西:http: //gotoandplay.freeblog.hu/

4

1 回答 1

1

我想你在这里要做的是有一个非常单一、简单的 UIView 覆盖整个游戏区域。然后将每个图块放在一个 CALayer 中,并将所有 CALayer 附加到 UIView 并移动它们并旋转它们。那么根本不需要 -drawRect: 。您将在图层中完成所有绘图,并且您应该以这种方式获得最佳性能。CALayer 原理上类似于 UIView,但重量更轻(更快更简单)。CALayer 基本上是一个只能绘制的视图;它无法处理触摸或事件。它的父视图必须为此做。但这让我们的 CALayer 快得多。

于 2010-01-07T23:19:17.363 回答