核心动画与自定义视图

时间:2011-03-28 19:44:12

标签: core-animation core-graphics

我使用以下drawRect:方法获得了一个视图子类:

- (void)drawRect:(CGRect)rect {

    [myBackgroundImage drawInRect:rect];

    ... // more, complex drawing such as strings, lines, etc.
}

我希望将背景图像转换为另一个背景图像的动画,而在背景图像上方绘制的其余视图保持不变。我该怎么办?我还需要额外的CALayer吗?

1 个答案:

答案 0 :(得分:1)

看起来您可能会使用多个图层:一个用于每个背景,另一个用于前景中的其余图层。这样您就可以分别对每个图层应用动画和变换。这是我在Flex with Sprites中成功使用的解决方案:使用分开的图形对象组织显示列表,这些图形对象分层叠加,移动/旋转/渐变以及应用于其中任何一个的任何内容。

作为一种设计原则,它应该适用于所有图形环境,包括iOS。

要考虑的一件事:在子图层的超层上应用的转换会同时影响所有子图层。