Ios 具有多个动画持续时间的图像序列动画

Ios 具有多个动画持续时间的图像序列动画,ios,objective-c,uiviewanimation,Ios,Objective C,Uiviewanimation,我可以使用animationImages和startAnimating属性从UIImaheView中的数组中加载一些UIImage,并具有固定的动画持续时间 像这样: - (void)viewDidLoad { [super viewDidLoad]; self.imageNamesArray = [[NSMutableArray alloc] initWithObjects:@"0001.png", @"0002.png", @"0003.png", @"0004.png",

我可以使用
animationImages
startAnimating
属性从
UIImaheView
中的数组中加载一些
UIImage
,并具有固定的
动画持续时间

像这样:

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.imageNamesArray = [[NSMutableArray alloc] initWithObjects:@"0001.png", @"0002.png", @"0003.png", @"0004.png", @"0005.png", @"0006.png", @"0007.png", @"0008.png", @"0009.png", @"0010.png", @"0011.png", @"0012.png", @"0013.png", @"0014.png", @"0015.png", @"0016.png", @"0017.png", @"0018.png", @"0019.png", @"0020.png", nil];


    self.imageArray = [[NSMutableArray alloc] init];

    for (int i = 0; i < [imageNamesArray count]; i++)
    {
        [imageArray addObject:[UIImage imageNamed:[imageNamesArray objectAtIndex:i]]];
    }

    self.imageView.animationImages = imageArray;
    self.imageView.animationDuration = 0.04;
    self.imageView.animationRepeatCount = 0;
    [imageView startAnimating];
}

我想根据
durationArray
的持续时间,在
UIImageView
中显示该
imageArray
中的每个图像。我如何实现这一点。我可以用
NSTimer
来做这项工作吗?如果有任何解决方案,请与我分享。非常感谢。

试试这段代码,我刚刚写的,如果有错误请告诉我

-(void)refreshTimer
{
    self.imageView.image = [UIImage imageNamed:[self.imageNamesArray objectAtIndex:count]];
    [self performSelector:@selector(refreshTimer) withObject:nil afterDelay:[[self.durationArray objectAtIndex:count] doubleValue]];
    count++;
}
这里的count是一个int。从Viewdidload调用此方法一次

[self refreshTimer];

是的,您需要使用一些计时方法(可能是NSTimer)来显示图像,而不是使用animationImages方法。@rdelmar,谢谢您的评论。是的,我也这么认为。但是,在这里,我实际上正在制作一些表情符号。那么,您认为使用
NSTimer
会完美吗?我说的是记忆问题。非常感谢你的评论。是的,它正在工作。只需在方法中放入
if-else
条件,并根据数组元素的数量运行该方法。我正在制作
表情符号
。您认为
performSelector
会执行与
animationDuration
相同的性能吗?performSelector没有性能问题。你可以毫无问题地使用它。如果答案正确,请选择正确答案。如果我只想显示一个动画,它正在工作。但是,如果我想为多个动画使用多组数组,该怎么办呢。我的意思是,假设我有3个数组作为图像名称,2个数组作为它们相应的持续时间。我怎样才能用这种方法连续显示它们??你知道吗?
[self refreshTimer];