Iphone — Загрузка изображений в массив с помощью цикла

#iphone #ios4

#iPhone #ios4

Вопрос:

Хорошо, я уверен, что есть простой способ сделать это, но я просто нигде не могу найти ответ.

У меня есть целая стопка изображений, которые мне нужно загрузить для нескольких разных UIImageView анимаций. Я хочу, чтобы они загружались с использованием цикла, потому что их так много, но я не могу понять, как изолировать правильные изображения в пакете.

Итак, например, скажем, у меня есть 40 файлов изображений. Первые 13 называются с jack_1.png точностью до jack_13.png , следующие 16 вызываются с jill_1.png точностью до jill_16.png и 11 вызываются с hill_1.png точностью до hill_11.png .

Я хотел бы создать for/if инструкцию, которая загружает все @"jack_%i.png" файлы в массив on, все @"jill_%i.png" файлы в другой массив и так далее.

Я надеюсь, что это имеет смысл.

Ответ №1:

Это код для массива jack, код для других будет таким же, но изменятся соответствующие фрагменты (ограничение в цикле и формат имени)

 for (int i = 1; i <= 13; i  ) {
    [jackArray addObject:[UIImage imageNamed:[NSString stringWithFormat:@"jack_%d.png", i]]];
}
  

Комментарии:

1. ваш файл не добавляет jack_13.png 🙂

2. Спасибо arclight. Я был на том же пути, что и вы, с этим кодом, но я надеюсь, что может быть способ сделать это так, чтобы мне не нужно было знать, сколько изображений в каждой группе. Я пытался отсканировать имена файлов, но безуспешно? Ваше решение избавит меня от проблем, но было бы неплохо, если бы этот процесс был более автоматизирован.

Ответ №2:

Используйте imageNamed: и stringWithFormat: .. что-то вроде:

 for(int i=1;i<=13;i  )
{
 [jackArray addObject:[UIImage imageNamed:[NSString stringWithFormat:@"jack_%d.png", i]]];
}
  

Я хотел бы добавить, что инициализация спама подобными изображениями, как правило, не является хорошей идеей для повышения производительности.