Форум программистов, компьютерный форум CyberForum.ru

Программирование iOS/iPhone

Войти
Регистрация
Восстановить пароль
 
albert102
-21 / 1 / 0
Регистрация: 30.10.2013
Сообщений: 53
#1

Показать loader пока image не загрузился - Программирование iOS

13.11.2013, 09:46. Просмотров 798. Ответов 6
Метки нет (Все метки)

доброе утро!

загружаю картинку из интернета таким способом.

Код
UIImage *pImage=[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:imageURL]]];;
[imageView setImage:pImage];
но как отобразить loader пока фотография в 1мб загрузится?
подскажите, пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2013, 09:46     Показать loader пока image не загрузился
Посмотрите здесь:
Objective-C Кастомная таблица не отображает ячейки, пока я не буду ее прокручивать
C# Создать Loader, который ждет пока не откроется нужный процесс а после чего заменяет массив байтов другим
показать картинку загрузки пока идет запрос jQuery
Показать уведомление, пока идет фильрация (обработка данных) Delphi БД Interbase
Показать координаты курсора на Image Delphi
Спрятать, показать картинку Image при выполнении условия. Delphi
Файл остается заблокированным до тех пор, пока объект Image не будет ликвидирован C# .NET 4.x
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
13.11.2013, 10:37     Показать loader пока image не загрузился #2
Ни в коем случае не грузите синхронно в главном потоке.
И все будет хорошо.
albert102
-21 / 1 / 0
Регистрация: 30.10.2013
Сообщений: 53
13.11.2013, 10:43  [ТС]     Показать loader пока image не загрузился #3
объясните подробнее.
то есть,чтобы не подвисало на время приложение, не делать это в одной функции? написать вторую для этого?
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
13.11.2013, 10:59     Показать loader пока image не загрузился #4
Называйте вещи правильно. Вы называете функциями - методы.
Почитайте что такое потоки.
В концепции iOS главный поток преимущественно для работы с графическим интерфейсом.
Для того, чтобы что-либо "качать" нужно создать/переключиться в другой поток и сделать эту работу в нем.

В вашем случае это будет так(самый просто вариант):
Objective-C
1
2
3
4
5
6
7
8
9
//Показываете индикатор загрузки
__block UIImageView *imageView = self.someImageView;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
    UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://eofdreams.com/data_images/dreams/image/image-07.jpg"]]];
    dispatch_async(dispatch_get_main_queue(), ^{
        //Скрываете индикатор загрузки
        imageView.image = image;
    });
});
albert102
-21 / 1 / 0
Регистрация: 30.10.2013
Сообщений: 53
13.11.2013, 11:04  [ТС]     Показать loader пока image не загрузился #5
Цитата Сообщение от zulkis Посмотреть сообщение
Называйте вещи правильно. Вы называете функциями - методы.
Почитайте что такое потоки.
В концепции iOS главный поток преимущественно для работы с графическим интерфейсом.
Для того, чтобы что-либо "качать" нужно создать/переключиться в другой поток и сделать эту работу в нем.

В вашем случае это будет так(самый просто вариант):
Objective-C
1
2
3
4
5
6
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
        UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://eofdreams.com/data_images/dreams/image/image-07.jpg"]]];
        dispatch_async(dispatch_get_main_queue(), ^{
            [self.headerView.photoView setImage:image];
        });
    });
понял, спасибо!
но еще один момент, пока фотка не загрузилась еще, как анимацию загрузки показать?
неужели так

loader.StarAnimation;
UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://eofdreams.com/data_images/dreams/image/image-07.jpg"]]];
dispatch_async(dispatch_get_main_queue(), ^{
[self.headerView.photoView setImage:image];
});
loader.StopAnimation;

??
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
13.11.2013, 11:04     Показать loader пока image не загрузился #6
Отредактировал предыдущее сообщение. Там все есть.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2013, 11:05     Показать loader пока image не загрузился
Еще ссылки по теме:
C# WPF Локализация. Нужен совет, пока не поздно, пока не наделал ошибок.
Windows заблокирована.Вирус.Загрузился с Линукс
Как узнать документ Ворда загрузился? VBA
Нечаянно загрузился Mozilla Firefox 7.0.1(x86 ru) Софт
После выключения компьютер больше не загрузился Windows 7

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
albert102
-21 / 1 / 0
Регистрация: 30.10.2013
Сообщений: 53
13.11.2013, 11:05  [ТС]     Показать loader пока image не загрузился #7
zulkis, ааа, все ясно.
спасибо еще раз, Вы очень помогли!
Yandex
Объявления
13.11.2013, 11:05     Показать loader пока image не загрузился
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru