我可以使用 animationImages 和 startAnimating 属性从 UIImaheView 的数组中加载一些 UIImage 修复了 animationDuration 。
像这样:
- (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];
}
但是,我想将那些 UIImage 加载到具有不同 animationDuration 的相同 UIImageView 中。让我解释一下我的意思。我有一个名为 imageNamesArray 的数组,其中包含 20 个不同的图像名称。现在,我想要一个包含 20 个不同持续时间的另一个数组。
self.durationArray = [[NSMutableArray alloc] initWithObjects"0.5", @"0.4", @"0.4", @"0.5", @"0.4", @"0.9", @"0.4", @"0.4", @"0.4", @"0.4", @"0.4", @"0.4", @"0.4", @"0.6", @"0.4", @"0.4", @"0.8", @"0.4", @"0.4", @"0.3", @"0.4", nil];
我想根据 durationArray 的持续时间在该 UIImageView 中显示该 imageArray 中的每个图像。我该如何实现。我可以使用 NSTimer 来完成这项工作吗?如果有解决方案请与我分享。非常感谢。
Best Answer-推荐答案 strong>
试试这段代码,我刚刚写的,如果有错误请告诉我。
-(void)refreshTimer
{
self.imageView.image = [UIImage imageNamed:[self.imageNamesArray objectAtIndex:count]];
[self performSelectorselector(refreshTimer) withObject:nil afterDelay:[[self.durationArray objectAtIndex:count] doubleValue]];
count++;
}
这里的count是一个int。从您的 Viewdidload 调用此方法一次
[self refreshTimer];
关于ios - 具有多个animationDuration iOS的图像序列动画,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/28956562/
|