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

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

Войти
Регистрация
Восстановить пароль
 
Slava-hacker32
7 / 7 / 0
Регистрация: 16.11.2011
Сообщений: 251
#1

Кеширование картинок - Программирование iOS

07.11.2014, 15:39. Просмотров 1171. Ответов 8
Метки нет (Все метки)

Доброго времени суток. Подскажите как правильно организовать хранение и отображение картинок. В json пакете получаю адреса картинок с этим проблем нет. Но как правильно организовать оффлайн версию приложения? Что бы я мог отображать эти картинки без доступа в интернет?
Как вариант можно скачать все картинки по указанным адресам и хранить их где то в каталоге приложения, но насколько эта идея хороша? Ведь картинок может быть много, а это заставит пользователя ждать пока скачаются все картинки (в tableview будет только текст без картинок которые еще только грузятся), плюс размер приложения увеличится или может это нормальная практика, но может подскажите как ее лучще реализовать например скачивание в отдельный поток засунуть? Может есть готовые фреймворки?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2014, 15:39
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Кеширование картинок (Программирование iOS):

Скролинг картинок - Программирование iOS
Здравствуйте. Подскажите как правильно сделать процесс листания картинок. Я просто видел несколько вариантов реализации и через...

Отображение картинок во втором vc - Программирование iOS
Вечер добрый. У меня в первом контроллере загружаются картинки. Во втором контролере эти картинки показываются (одна их них). Картинки...

Просмотр картинок, кнопки back, forward - Программирование iOS
Здравствуйте. Интересует вопрос как сделать перелистывание картинок? Все картинки находится в одной папке, как сделать, что бы при нажатии...

Какой подход правильный в хранении и отображении картинок в приложении? - Программирование iOS
Доброго времени суток, уважаемые форумчане. Столкнулся вот с какой ситуацией. У меня в приложении (iPnone) хранится 120 картинок и они...

Кеширование данных запросов в приложении - Objective-C
Какие вы знаете инструменты для работы с сетью (http) которые позволяют кешировать запросы, чтобы можно было получить данные даже в offline...

Загрузка картинок по ссылке из массива - Objective-C
Доброго вечера всем? вообщем занимаюсь парсингом json, есть массив в который я получаю список ссылков из сервера для ввода их в таблицу, но...

8
Vorona
Peace 2 all shining faces
671 / 533 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
08.11.2014, 15:22 #2
да это на самом деле тривиальная задача, в интернете куча способов загрузки картинок в таблицу на фоне
сначала отображаете легковесные данные, потом догружаете тяжеловесные

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

то, что размер приложения увеличивается, это тоже нормально
вы, конечно, можете чистить кеш (данные из базы и картинки), когда пройдет определенное время или перейдете на другой скрин, или закроете приложение и тд
1
vitali36
7 / 7 / 2
Регистрация: 09.02.2014
Сообщений: 91
12.11.2014, 14:42 #3
Пользователь не будет ждать если они будут качаться в другом потоке, чтобы не тормозил UI. Как я делал для отображения в каждой ячейке аватарки пользователя:
Objective-C
1
2
3
4
5
6
7
8
NSURLRequest* request = [NSURLRequest request WithURL:"url картинки"];
__weak UITableViewCell* weakCell = cell;
cell.imageView.image = nil;
[cell.imageView setImageWithURLRequest:request placeholderImage:nil  success^(параметры блока){
weakCell.imageView.Image = image;
[weakCell layoutSubviews];
}
failure:^(параметры блока)
. Ты предусмотри еще то, что у тебя не сразу все картинки качаются. Скачалось, скажем, 8. потом проскроллил - еще 8. B и т.д. И никаких тормозов - приложение летает. Ну а если в оффлайне тебе надо будет отображать, то тогда в кордате храни данные
0
Slava-hacker32
7 / 7 / 0
Регистрация: 16.11.2011
Сообщений: 251
12.11.2014, 22:14  [ТС] #4
не, я понимаю что в отдельном потоке будут качаться картинки, меня интересует вопрос, показывать что то на месте предполагаемой картинки, какую то дефолтную картинку или ничего не показывать, пусть будет пустая область?
0
vitali36
7 / 7 / 2
Регистрация: 09.02.2014
Сообщений: 91
12.11.2014, 23:04 #5
Это как ты хочешь. Посмотри выше где я писал. Там placeholderImage нил я ставил. А можешь поставить что тебе нужно)
0
Vorona
Peace 2 all shining faces
671 / 533 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
12.11.2014, 23:47 #6
если на экране немного картинок, то можно активити индикатор ставить, пусть крутится пока картинка не загрузится
а если в таблице много ячеек, то будет немного раздражать куча колесиков, потому лучше что-то дефолтное поставить
0
Slava-hacker32
7 / 7 / 0
Регистрация: 16.11.2011
Сообщений: 251
17.11.2014, 12:22  [ТС] #7
а картинки лучше хранить в файловой системе или в CoreData? Как это скажется на скорости работы приложения или скорость загрузки картинок (или других файлов) из coreData и файловой системы примерно одинаковый?
0
vitali36
7 / 7 / 2
Регистрация: 09.02.2014
Сообщений: 91
17.11.2014, 13:46 #8
я бы хранил в coreData пути на картинки
0
zulkis
684 / 611 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
17.11.2014, 13:51 #9
vitali36, главное не абсолютные...
0
17.11.2014, 13:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2014, 13:51
Привет! Вот еще темы с ответами:

Загрузка картинок в ячейках TableView - Objective-C
Всем привет! Метод LoadingImage вызывается при создании ячейки tableview, а в методе connectionDidFinishLoading данные еще не загружены...

запрет на кеширование картинок - PHP
Здравствуйте. Подскажите, пожалуйста, как ввести запрет на кеширование картинок. Дело в том, что у меня есть папка pict, в кот хранятся...

Создание массива картинок, добавление их во фрейм!(с возможностью переключения картинок кнопкой) - Java
Всем привет, как создать массив картинок? Имею в виду как добавить картинки в массив а потом переключать их с помощью кнопки? У меня...

перелистывание картинок (при неограниченном кол-ве картинок), используя пикчербоксы на C# - C#
Здравствуйте. Как перелистывать картинки (при неограниченном кол-ве картинок), используя пикчербоксы на языке C#(желательно пример с кодом)?


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

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

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