0

在 iPhone 上,当您使用 -addSublayer: 或 -removeFromSuperlayer 将子图层添加到可见视图的图层时,该子图层不应该以动画方式出现或消失(即逐渐淡入或淡出)吗?我的程序使用图层(而不是视图)进行动画处理。当我更改图层的属性(例如位置或图像内容)时,更改会产生动画效果(图层在其父图层周围出现条纹,图层从旧图像淡入新图像),因此我显然正确设置了图层和视图. 但是,当我添加或删除子图层时,更改会立即发生;没有动画。

阅读参考资料,它说如果图层可见,则子图层应在添加或删除时进行动画处理。

我究竟做错了什么?有没有人遇到过类似的问题,并且能够找到解决方案?

4

1 回答 1

3

如果您想要淡入淡出,可以使用以下 CATransition:

CATransition* transition = [CATransition animation];
transition.delegate = nil;
transition.duration = 0.3;
transition.timingFunction = [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseOut];
transition.type = kCATransitionFade;
[theLayer addAnimation: transition forKey: nil];

只要确保#import <QuartzCore/QuartzCore.h>并链接框架。在添加或删除子层之前调用此块。

于 2010-04-11T02:09:22.770 回答