我想显示.gif(就像自动播放视频一样),因此我发现需要使用UIImages
数组。现在,我有一个包含96个图像的视频,所以我想用一个循环来命名它们。这可能吗?
我尝试了以下操作,但不幸的是,它无法正常工作:
for (int i = 0; i<97; i++) {
[UIImage imageNamed:@"%d", i];
}
所以我想用循环做的事情是这样的:
NSArray *myArray = [NSArray arrayWithObjects:
for (int i = 0; i<97; i++) {
[UIImage imageNamed:[NSString stringWithFormat:@"%d",i]];
}
, nil];
有没有一种方法在数组中使用for循环? 一些想法?
答案 0 :(得分:1)
我不确定您想要什么,但如果您想使用一批图片显示动画,则可以使用以下方法。
// 1. Create an array of images names. If you have images named 0.png, 1.png, ... 95.png:
NSMutableArray *imageNames = [NSMutableArray new];
for (int i = 0; i < 96; i++)
{
[imageNames addObject:[NSString stringWithFormat:@"%d", i]];
}
// 2. Create an array of images from array of names:
NSMutableArray *images = [[NSMutableArray alloc] init];
[imageNames enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
[images addObject:[UIImage imageNamed:obj]];
}];
// 3. Assign it to UIImageView:
self.imageView = [UIImageView new];
[self.view addSubview: self.imageView];
self.imageView.animationImages = images;
self.imageView.animationDuration = 0.5;
[self.imageView startAnimating];
您可以在此link
找到更多信息答案 1 :(得分:0)
imageview有一个属性,即动画图像。你可以将你的arrayNames添加到这个属性。然后它可以工作
答案 2 :(得分:0)
在.h文件中创建这样的属性:
@property(nonatomic, strong) NSMutableArray *images;
在viewDidLoad方法中初始化它,如下所示:
- (void)viewDidLoad
{
[super viewDidLoad];
self.images = [[NSMutableArray alloc] init];
}
您需要执行以下操作:
for (int i = 0; i<97; i++)
{
UIImage *currentImage = [UIImage imageNamed:[NSString stringWithFormat:@"%d",i]];
[self.images addObject:currentImage];// images is a NSMutableArray
}
如果要为这些图像设置动画,可以执行以下操作(假设您有一个名为imageView的UIImageView对象):
imageView.animationImages = self.images;
[imageView startAnimating];
浏览UIImageView类文档以获取更多选项。