Форум программистов, компьютерный форум, киберфорум
Objective-C
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
2 / 2 / 2
Регистрация: 02.12.2012
Сообщений: 102

Загрузка изображения через URL + UIActivityIndicatorView

20.04.2014, 17:27. Показов 2431. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
хочу загрузить изображение через URL

в сториборде вставил UIImageView и UIActivityIndicator, сделал свойства, но не понимаю, как сделать так, чтобы индикатор крутился до того, как загрузится изображение, а после этого вылетало изображение и пропадал индикатор
вот, что смог написать, используя советы со стековерфлоу. Как мне узнать, когда загрузилась картинка, чтобы потом вывести ее на экран и убрать индикатор?
.h
Objective-C
1
2
3
4
5
6
@interface RoomMapViewController : UIViewController
 
@property (weak, nonatomic) IBOutlet UIImageView *imageRoomMap;
@property (weak, nonatomic) IBOutlet UIActivityIndicatorView *activityIndicator;
 
@end
.m
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#import "RoomMapViewController.h"
 
@interface RoomMapViewController ()
 
@end
 
@implementation RoomMapViewController
 
@synthesize imageRoomMap;
@synthesize activityIndicator;
 
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}
 
- (void)viewDidLoad
{
    [super viewDidLoad];
    
    [activityIndicator startAnimating];
    [self.view addSubview:activityIndicator];
    self.view.userInteractionEnabled = NO;
    
    
    NSURLRequest* updateRequest = [NSURLRequest requestWithURL: [NSURL URLWithString:@"https://www.someURL"]];
    NSURLConnection* connection = [[NSURLConnection alloc] initWithRequest:updateRequest  delegate:self];
    
    [connection start];
    
    
    
    //imageRoomMap.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"https://someURL"]]];
}
 
 
 
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
 
 
@end
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.04.2014, 17:27
Ответы с готовыми решениями:

Как при дозагрузке данных показать UIActivityIndicatorView внизу UITableView?
Есть UITableViewController, в tableView: willDisplayCell: forRowAtIndexPath: если это последняя строка таблицы я в фоновом потоке вызываю...

Загрузка изображения с URL
Добрый день. Мне нужно загрузить картинку с url адреса на компьютер (или есть другие способы загрузить с сервера сразу на ftp) и ...

Загрузка изображения из URL в объект File
Не могу понять, как можно загрузить изображение из URL в объект File, Объект File аналогичный тем, список которых можно взять из...

6
 Аватар для zulkis
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
21.04.2014, 07:14
Смотрите методы протокола NSURLConnectionDownloadDelegate и когда отработает
Objective-C
1
- (void)connectionDidFinishDownloading:(NSURLConnection *)connection destinationURL:(NSURL *) destinationURL;
выключайте анимацию свою и ставьте картинку из destinationURL;
1
2 / 2 / 2
Регистрация: 02.12.2012
Сообщений: 102
21.04.2014, 18:37  [ТС]
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
- (void)viewDidLoad
{
    [activityIndicator startAnimating];
    NSURLConnection *connection = [NSURLConnection connectionWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"some url"]] delegate:self];
    [self connectionDidFinishDownloading:connection destinationURL:[NSURL URLWithString:@"someurl"]];
    [super viewDidLoad];
}
 
- (void) connectionDidFinishDownloading:(NSURLConnection *)connection destinationURL:(NSURL *)destinationURL
{
    [activityIndicator stopAnimating];
    imageRoomMap.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:destinationURL]];
}
написал вот так, но картинка появляется на долю секунды и исчезает, в чем ошибка?

прописать протокол в .h файле не забыл
0
 Аватар для zulkis
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
22.04.2014, 12:11
lowlol,
Objective-C
1
- (void)connectionDidFinishDownloading:(NSURLConnection *)connection destinationURL:(NSURL *) destinationURL;
это метод протокола...

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
- (void)viewDidLoad
{
    [super viewDidLoad];
    [activityIndicator startAnimating];
    NSURLConnection *connection = [NSURLConnection connectionWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"some url"]] delegate:self];
    [connection start];
}
 
- (void) connectionDidFinishDownloading:(NSURLConnection *)connection destinationURL:(NSURL *)destinationURL
{
    [activityIndicator stopAnimating];
    imageRoomMap.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:destinationURL]];
}
1
2 / 2 / 2
Регистрация: 02.12.2012
Сообщений: 102
22.04.2014, 14:39  [ТС]
zulkis, я понял, что это метод протокола. я его переопределил и вызвал его для self, почему это неправильно?
0
 Аватар для zulkis
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
22.04.2014, 16:47
lowlol, почитайте описание NSURLConnection и протоколов, которые он поддерживает.
И разберитесь как работает делегирование. И для чего вы передаете self в:
Objective-C
1
NSURLConnection *connection = [NSURLConnection connectionWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"some url"]] delegate:self];
0
 Аватар для noname_club
112 / 103 / 12
Регистрация: 01.05.2013
Сообщений: 603
25.04.2014, 09:37
для изображений обычно требуется система кеширования.

Просмотри в сторону SDWebImage и его аналогов
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.04.2014, 09:37
Помогаю со студенческими работами здесь

Загрузка файла через URL и сохранение его в IsolatedStorage
Совственно задача простая. Есть прямая ссылка на файл. Этот файл нужно загрузить в IsolatedStorage. Для получения stream использую...

Последовательная загрузка URL в webbrowser через 10 секунд из массива по таймеру
Что у меня неправильно? у меня в данный момент загружается всегда последний элемент массива using System; using...

Загрузка изображения через LoadFromFile
Почему неизвестен формат? с++ вроде ж поддерживает png Или что то не так делаю...?

Загрузка изображения через функцию
Здравствуйте. Не могу загрузить изображение на сервер. Делаю модульный динамический сайт с использование jquery Форма для загрузки ...

Загрузка изображения в access через прогу на vb
Пожалуйста подскажите как можно через форму на visual basic загрузить в access картинку для хранения и выводить в дальнейшей на экран с...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru