Прогрессивная загрузка подпредставлений для повышения производительности приложений iOS - PullRequest
2 голосов
/ 15 ноября 2011

Я ищу метод для постепенной загрузки содержимого UIViewController, чтобы приложение чувствовало себя «быстрее».Я заметил эту проблему, когда при переносе viewcontroller в стек наблюдается заметная задержка при ожидании его вставки. Представление UIViewController имеет несколько сложных подпредставлений с прозрачностью.Мне интересно, если я создам их после viewDidAppear и затемну их, то переход будет выглядеть намного плавнее.

Я заметил аналогичный эффект в приложении Apple Trailers.При нажатии на фильм в этом приложении отображается подробный вид и содержимое загружается после факта.Частично эта задержка вызвана тем, что они загружают детали перед их отображением, но кажется, что они всегда появляются в этом большом изображении, независимо от того, было ли оно загружено или нет.

У кого-нибудь был большой успех с этим или с улучшением загрузки UIViewController в целом.

1 Ответ

1 голос
/ 15 ноября 2011

Прежде чем начать вносить изменения в целях повышения производительности, используйте инструменты, чтобы профилировать свое приложение и выяснить, в чем проблема на самом деле.Это в рисовании сложных подпредставлений?Это при загрузке данных?Единственный способ узнать - это измерить.

Нет причин, по которым вы не могли бы делать то, что предлагаете, - заставить контроллер представления создать / загрузить свой основной вид, а затем добавить сложные подпредставления.Ваш контроллер представления может добавлять и удалять подпредставления по желанию.Будет ли это приложение чувствовать себя быстрее?Это может быть - это похоже на стратегию изображений по умолчанию, встроенную Apple в iOS, где ОС загружает изображение вашего интерфейса, чтобы заставить устройство казаться отзывчивым, а затем заменяет реальный интерфейс, как только он будет готов.С другой стороны, если пользователю все еще приходится ждать создания сложных подпредставлений, прежде чем представление будет полезным, просмотр остальной части представления может не сильно помочь.

Другая возможность (опять же, после измерения)может быть для создания представлений до , когда они нужны пользователю.Это противоречит ленивой инициализации, которую приложения iOS обычно используют для сохранения памяти и мощности, но если вы знаете, что вам понадобятся представления, и вы можете ожидать затишья в активности пользователей, прежде чем они понадобятся, это может бытьхороший способ увеличить видимую скорость приложения.Все, что вам нужно сделать, чтобы заставить контроллер представления создать / загрузить его представление, это получить доступ к его свойству view.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...