我使用以下drawRect:
方法获得了一个视图子类:
- (void)drawRect:(CGRect)rect {
[myBackgroundImage drawInRect:rect];
... // more, complex drawing such as strings, lines, etc.
}
我希望将背景图像转换为另一个背景图像的动画,而在背景图像上方绘制的其余视图保持不变。我该怎么办?我还需要额外的CALayer
吗?
答案 0 :(得分:1)
看起来您可能会使用多个图层:一个用于每个背景,另一个用于前景中的其余图层。这样您就可以分别对每个图层应用动画和变换。这是我在Flex with Sprites中成功使用的解决方案:使用分开的图形对象组织显示列表,这些图形对象分层叠加,移动/旋转/渐变以及应用于其中任何一个的任何内容。
作为一种设计原则,它应该适用于所有图形环境,包括iOS。
要考虑的一件事:在子图层的超层上应用的转换会同时影响所有子图层。