UIImageView вызывает лаг первый раз, когда они отображаются - PullRequest
2 голосов
/ 23 марта 2011

У меня есть пара UIViews с UIImageViews на них. Когда я отображаю представление в первый раз , перед его отображением наблюдается заметная задержка (0,5 секунды или около того). При повторном показе все работает.

Мне удалось обойти это, добавив все виды и удалив их. Как это:

[self performSelectorOnMainThread:@selector(addAndRemoveAllViews) 
                       withObject:nil 
                    waitUntilDone:NO];

Функция перебирает все представления и [addSubview:view], за которыми следует [view removeFromSuperview]. Похоже, это приводит к загрузке изображений, когда они не отображаются.

Вопросы:

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

Обновление:

Изображения создаются из NSData, например:

[[UIImageView alloc] initWithImage:[UIImage imageWithData:rawData]];

1 Ответ

2 голосов
/ 23 марта 2011

Кажется очень вероятным, что изображение больше, чем изображение. Если возможно, уменьшите его до размера, необходимого для просмотра изображения.

Начальная задержка - загрузка изображения из хранилища, после чего вы используете кэшированную версию, поэтому она быстрее.

...