寻求一般建议。我有任意数量的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/

10-13 03:51