具有多个 animationDuration iOS 的图像序列动画
Image sequence animation with multiple animationDuration iOS
我可以从具有 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];
}
但是,我想在同一个 UIImageView
中加载那些 UIImage
和不同的 animationDuration
。让我解释一下我的意思。我有一个名为 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
来完成这项工作吗?如果有解决方案请与我分享。非常感谢。
试试这段代码,我刚刚写的,如果有错误请告诉我。
-(void)refreshTimer
{
self.imageView.image = [UIImage imageNamed:[self.imageNamesArray objectAtIndex:count]];
[self performSelector:@selector(refreshTimer) withObject:nil afterDelay:[[self.durationArray objectAtIndex:count] doubleValue]];
count++;
}
这里的计数是一个整数。从您的 Viewdidload 调用此方法一次
[self refreshTimer];
我可以从具有 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];
}
但是,我想在同一个 UIImageView
中加载那些 UIImage
和不同的 animationDuration
。让我解释一下我的意思。我有一个名为 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
来完成这项工作吗?如果有解决方案请与我分享。非常感谢。
试试这段代码,我刚刚写的,如果有错误请告诉我。
-(void)refreshTimer
{
self.imageView.image = [UIImage imageNamed:[self.imageNamesArray objectAtIndex:count]];
[self performSelector:@selector(refreshTimer) withObject:nil afterDelay:[[self.durationArray objectAtIndex:count] doubleValue]];
count++;
}
这里的计数是一个整数。从您的 Viewdidload 调用此方法一次
[self refreshTimer];