Загрузить данные после viewDidLoad

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

Есть ли способ загрузить только первые 5 изображений, которые видны на экране в viewDidLoad, а затем загрузить оставшиеся изображения сразу после загрузки viewController?

Для этого предназначены viewWillAppear или viewDidAppear? Есть ли что-то еще, что лучше всего использовать для загрузки контента без задержки времени отклика для пользователей?

Большое спасибо заранее!


person RanLearns    schedule 24.03.2011    source источник


Ответы (3)


вы можете использовать viewWillAppear, чтобы получить первые 5 изображений/данных для отображения без каких-либо задержек для пользователя и остальных данных, которые вы могли бы использовать в viewDidAppear.

person Jhaliya - Praveen Sharma    schedule 24.03.2011

Вы, безусловно, можете сделать это в viewDidAppear, если вы просто хотите показать вид перед загрузкой изображений. Имейте в виду, что viewDidAppear может вызываться более одного раза, и вы, вероятно, хотите загрузить только изображения.

Если вы загружаете изображения из Интернета (т. е. длительное время загрузки), вы можете реализовать загрузчик изображений, который сообщит вашему контроллеру, что изображение готово для отображения через делегата. Если все изображения хранятся локально и загружаются в течение нескольких секунд, подход viewDidAppear должен работать нормально.

person Erik B    schedule 24.03.2011

Я бы порекомендовал вам загружать изображения в фоновом потоке (потоках) либо с помощью GCD, либо с помощью NSInvocation. В viewDidLoad вы просто запускаете фоновую обработку. после того, как изображения загружены в фоновый поток, передайте их в основной поток и отобразите по своему усмотрению.

person sgosha    schedule 24.03.2011