У меня есть приложение с 150 локальными изображениями (около 500 кб каждая). Я загрузил их все в массив так:Предварительная загрузка изображений Приложение iOS
allPics = [[NSMutableArray alloc] init];
//NSString *imagePath;
NSArray *result = [database performQuery:@"SELECT image_path FROM validWords order by valid_word"];
for (NSArray *row in result) {
NSString *temp = [row objectAtIndex:0];
NSLog(@"%@", temp);
//imagePath = temp;
UIImage *newImage = [UIImage imageNamed:temp];
[allPics addObject:newImage];
}
Когда я установил свой UIImageView позже к одному из этого фото, она висит мой интерфейс на секунду, из-за отложенную загрузку от того, что я прочитал. Я пытался прервать их, но это увеличило мою память до более чем 3 ГБ, прежде чем он получил третью часть моих изображений. Должен ли я искать фоновый поток для рендеринга изображения, когда мне это нужно? Когда я уменьшил общее количество изображений до 4, как только все 4 были отображены один раз, переходы между ними были бесшовными.
Я ценю любые советы и решения!
500kb на диске, разрешение 6000x6000. Изображения были сделаны графическим художником, и я уменьшаю их до 400 x 400 на не сетчатой оболочке ipad. Являются ли эти процессы масштабирования, добавляя много избыточных затрат к рендерингу? – Teknos
WOW. хорошо, там есть ваша проблема. 6000x6000 является массивным в памяти. Представьте, что вы используете 8 бит информации для красных, зеленых, синих и альфа-каналов. это означает, что у вас есть 6000x6000 пикселей, где каждый пиксель занимает 4 байта (обычно используемый размер). это 144000000 байт пространства, необходимого для представления изображения на диске перед масштабированием. Мой совет, предварительно масштабируйте изображение до 400x400, прежде чем наложить его на устройство. Хорошее эмпирическое правило состоит в том, чтобы всегда готовить, если можете. – Bergasms
В зависимости от того, как вы обрабатываете масштабирование, IOS будет обрабатывать масштабирование, не загружая сразу все изображение в память, но это даст вам накладные расходы, которые вы испытываете. – Bergasms