我这样做是为了学习如何使用iPhone上的Core Animation动画属性(不学习如何交叉淡化图像本身).
在SO上阅读类似的问题让我相信它可以通过动画UIImageView 层的.contents属性来完成,如下所示:
UIImage *image1 = [UIImage imageNamed:@"someImage1.png"];
UIImage *image2 = [UIImage imageNamed:@"someImage2.png"];
self.imageView.image = image1;
[self.view addSubview:self.imageView];
CABasicAnimation *crossFade = [CABasicAnimation animationWithKeyPath:@"contents"];
crossFade.duration = 5.0;
self.imageView.layer.contents = image2;
[self.imageView.layer addAnimation:crossFade forKey:@"animateContents"];
Run Code Online (Sandbox Code Playgroud)
我是否弄错了细节或者这是不可能的.
更新:上面的代码生成一个空白的UIImageView.当我更改此行时:
self.imageView.layer.contents = image2.CGImage;
Run Code Online (Sandbox Code Playgroud)
...我现在可以看到图像,但它不会淡入,只会立即出现.