循环遍历数组内容的名称

时间:2014-11-27 07:14:39

标签: ios arrays xcode loops uiimage

我想显示.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循环? 一些想法?

3 个答案:

答案 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类文档以获取更多选项。