寻求一般建议。我有任意数量的UIImages
,其中引用存储在数组中。我希望第一张图像完全淡出,然后第二张图像淡入,停留几秒钟,然后淡出。以此类推,数组中的每个图像。因此,动画在多个视图之间循环,每个视图逐渐消失,然后在下一个逐渐消失。动画无限期重复。我希望我很清楚。我不希望一个图像逐渐淡入另一个图像的交叉溶解过渡。
理想情况下,我想使用相同的UIImageView
并在前一张图像淡出后立即替换图像(即alpha属性设置为0.0)。
我很好奇实现此目的的最佳方法,是否应该使用UIView
的动画方法或使用Core Animation。
谢谢你的帮助!
最佳答案
您可以使用类似这样的方法:
NSArray* images.. //some initialization code somewhere at your class
NSUInteger currentIndex = 5; //lets assume you have some property for storing your current image index
-(void)animateToImageAtIndex:(NSUInteger)targetIndex{
[UIView animateWithDuration:0.5 delay:1.0 options:nil animations:^{
yourImageView.alpha = 0.0;
} completion:^(BOOL finished) {
yourImageView.image = [images objectAtIndex:++currentIndex];
yourImageView.alpha = 1.0;
if(currentIndex < targetIndex){
[self animateToImageAtIndex:targetIndex];
}
}];
}
然后在需要时致电
[self animateToImageAtIndex:*someTargetIndex*];
但是请注意,此代码没有检查数据数组范围的例程,因为它取决于存储的具体实现。
关于iphone - 如何在UIImageView中淡入/淡出任意数量的UIImage,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8423287/