Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

доброе утро!

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

Код
UIImage *pImage=[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:imageURL]]];;
[imageView setImage:pImage];
но как отобразить loader пока фотография в 1мб загрузится?
подскажите, пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2013, 09:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Показать loader пока image не загрузился (Программирование iOS):

Создать Loader, который ждет пока не откроется нужный процесс а после чего заменяет массив байтов другим - C#
как создать лоадер который ждет пока не откроется нужный процесс а после чего заменяет массив байтов другим?

показать картинку загрузки пока идет запрос - jQuery
Привет всем. Работаю с yandex картами и как только происходит клик по карте javascript обращается к php файлу. в этой php файл передаются...

Interbase Показать уведомление, пока идет фильрация (обработка данных) - Delphi БД
Уважаемые знатоки, с наступившим Вас Новым годом! Подскажите как прописать код. При нажатии на кнопку стартует обработка данных...

Показать координаты курсора на Image - Delphi
Как сделать, чтобы при наведении мыши на Image в строке состояния показывалась координата точки?

Спрятать, показать картинку Image при выполнении условия. - Delphi
Доброе утро. Хотел узнать как грамотнее сделать так, что бы при выполнении условия на экране выводилась определенная картинка, которую на...

.NET 4.x Файл остается заблокированным до тех пор, пока объект Image не будет ликвидирован - C#
Всем доброго времени суток. Нужна помощь. Есть image Box в нем отображается картинка при двойном клике на imageBox открывается...

6
zulkis
683 / 610 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
13.11.2013, 10:37 #2
Ни в коем случае не грузите синхронно в главном потоке.
И все будет хорошо.
0
albert102
-21 / 1 / 0
Регистрация: 30.10.2013
Сообщений: 53
13.11.2013, 10:43  [ТС] #3
объясните подробнее.
то есть,чтобы не подвисало на время приложение, не делать это в одной функции? написать вторую для этого?
0
zulkis
683 / 610 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
13.11.2013, 10:59 #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;
    });
});
0
albert102
-21 / 1 / 0
Регистрация: 30.10.2013
Сообщений: 53
13.11.2013, 11:04  [ТС] #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;

??
0
zulkis
683 / 610 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
13.11.2013, 11:04 #6
Отредактировал предыдущее сообщение. Там все есть.
0
albert102
-21 / 1 / 0
Регистрация: 30.10.2013
Сообщений: 53
13.11.2013, 11:05  [ТС] #7
zulkis, ааа, все ясно.
спасибо еще раз, Вы очень помогли!
0
13.11.2013, 11:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2013, 11:05
Привет! Вот еще темы с ответами:

Надо что бы при нажатии на какой либо Image с картинкой, картинка перекидывалась в пусто Image, а Image на который нажали исчезал. - Delphi
Имеется 4 Image в 3 из них находятся картинки, а 4 пустой. Надо что бы при нажатии на какой либо Image с картинкой, картинка перекидывалась...

Локализация. Нужен совет, пока не поздно, пока не наделал ошибок. - C# WPF
Я решил сделать мультиязычность в одном приложении. Так как приложение WPF я использую ресурсные словари. В разметке окон, в тех местах где...

Image 1 под Image 2 и Image 3 как заставить его работать как кнопку? - Delphi
Имеется несколько Image, все они расположены друг на друге, Image используемый как кнопка перестаёт работать когда поверх него расположен...

Image 1 под Image 2 и Image 3 как заставить его работать как кнопку? - Delphi
Имеется несколько Image, все они расположены друг на друге, Image используемый как кнопка перестаёт работать когда поверх него расположен...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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