使用drawRect中创建的内容动画(滑动)视图:

时间:2012-02-26 09:19:12

标签: ios animation calayer

我有一些主要有内容,纹理和阴影的视图需要通过将它们滑动到屏幕的另一部分来移动。

这些纹理是在drawRect中创建的:只需要在视图的生命周期中渲染一次(除了可选的重新着色它们之外)。

然而,幻灯片有点生涩,我认为这是因为纹理不断被重绘。

我想知道通过直接使用视图CALayer渲染纹理是否有任何价值。这会避免在视图移动时重新渲染纹理吗?

我之前从未使用过CALayer。

感谢 卡尔

1 个答案:

答案 0 :(得分:0)

如果您覆盖drawRect并使用您的视图,则每次都会重绘。你可以做的是创建一个方法来绘制你的视图一次,然后调用一次(假设在init之后)并且不要覆盖drawRect。这应该可以解决您的性能问题。

还有一件事,每个视图都由一个图层(CALayer)支持,如果你做动画并且你想要更好的表现,你应该在动画期间移动图层而不是移动他的视图(UIView)。要访问视图层,只需执行myView.layer。

希望这有用。