我有一个 UICollectionView,其中包含包含 ImageViews 的单元格。下载我想在单元格中显示的图像后,我想将我的图像与单元格内已经存在的占位符图像交叉溶解。
一切都按预期工作,但是当我开始重用 CollectionViews 时,我开始看到奇怪的事情。
- 我的占位符图像的设置(在没有动画的情况下完成)被忽略了。
- 在我重新加载集合/表格视图之后,它比淡出的图像是最后一个可见的图像(在另一个单元格中)。
我目前正在使用以下代码进行操作:
weakSelf.image = placeholderImage;
[UIView transitionWithView:weakSelf
duration:5.0f
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^{
weakSelf.image = image;
} completion:nil];
但是如果我那样做也没关系...
weakSelf.image = placeholderImage;
CATransition *transition = [CATransition animation];
[transition setType:kCATransitionFade];
transition.duration = 5.0;
[weakSelf.layer addAnimation:transition
forKey:@"fade"];
weakSelf.image = image;
是 UIViews 的presentationLayer 的一些缓存问题吗?有什么办法可以让我在 UICollectionViews 或 UITableViews 中淡入淡出吗?
编辑:
我上传了一个演示问题的小示例项目...... https://dl.dropboxusercontent.com/u/809469/ImageTransition.zip
如果您运行 Demo-App 并点击右上角的重新加载按钮,您可以看到图像正在从其他随机图像中消失。我认为淡入淡出会再次出现在同一张图像之间......而且self.imageView.image = nil;
不知何故被忽略了?!?!