2012-02-26 67 views
0

我有一些视图主要包含内容,纹理和阴影,需要通过将其滑动到屏幕的另一部分来移动它们。使用drawRect创建的内容动画(滑动)视图:

这些纹理是在drawRect中创建的:并且只需要在视图的整个生命周期中渲染一次(可以选择将它们重新着色)。

但是,幻灯片有点生涩,我假设这是因为纹理不断重绘。

我想知道是否有直接使用视图CALayer渲染纹理中的任何值。这会避免每当视图移动时渲染纹理?

我从来没有使用过CALayer。

感谢 卡尔

回答

0

如果重写的drawRect,并使用你的看法那样,这将是重绘每一次。你可以做的是创建一个方法来绘制你的视图一次,并且被调用一次(比如在init之后)并且不要重写drawRect。这应该可以解决您的性能问题。还有一件事,每个视图都支持一个图层(CALayer),如果你做动画,并且你想要更好的表现,你应该移动图层而不是在动画期间移动他的视图(UIView)。要访问视图的图层,只需执行myView.layer。

希望这有帮助。

+0

是的,这是非常有帮助的,谢谢 – 2012-02-27 07:39:30

+0

没问题,如果你满意,你可以点击并给我一些小声望:) – Ganzolo 2012-02-27 08:22:36