Вся Лекция 9 посвящена единственной и очень важной теме — визуальной таблице Table View, которая является в iOS основным способом отображения и взаимодействия с большими наборами данных. Таблица Table View изначально настроена на отображение очень большого объема данных (сотни тысяч и более строк) и использует эффективный механизм формирования очереди повторно используемых ячеек (Dequeue Reusable Cell) и делегирование dataSource для загрузки динамических данных.
Первая часть Лекции 9 представляет целый спектр проблем, связанных как со структурой и составными частями Table View, так и с использованием подкачки данных в таблицу из интернета в многопоточной среде. В условиях, когда ячейки в таблице Table View «уходят» и «приходят» на экран, а также повторно используются в целях эффективности, законы «Мира многопоточности» проявляют себя в полную силу. Пол Хэгерти показывает две вещи, которые вы все должны учитывать в условиях многопоточности.
Table View может быть источником «переезда»( segue) на другой MVC. Каждая строка в таблице может иметь два различных типа segues. Один — если вы кликните на строке, и второй — если вы кликните на маленьком кружочке с буквой i (информация).
Начиная с iOS 8 механизм Autolayout может автоматически настраивать высоту ячеек с использованием UITableViewAutomaticDimension/ estimatedRowHeight .
Вторая, не менее важная часть, Лекции 9 демонстрирует всю эту технологию работы с Table View на примере создания с «нуля» клиента Twitter, осуществляющего выборку данных по запросу, сформированному пользователем. Разбираются различные стили ячеек, но особенно подробно показано применение Custom стиля для ячейки таблицы, требующего специального subclass класса UITableViewCell.
В демонстрационном примере профессор показывает как работать в workspace c двумя равноправными проектами, один из которых фреймворк Twitter, а второй — обычное приложение Smashtag, использующее этот фреймворк.
Лекции и слайды на английском языке представлены в iTunes название “9. Table View”. Код демонстрационного примера «Smashtag L9» для Swift 3.0 и Xcode 8 код находится на Github, а для Swift 3 .2 и Xcode 9 — также на Github.
Русскоязычный неавторизованный конспект Лекции 9, хронометрированный через каждые 5 минут, и представленный в виде PDF-файла, который можно скачать и использовать offline, а также Google Doc доступны на платной основе.
Все 9 лекции за сколько можно купить?
Вы можете открыть пост любой лекции, начиная с 3-ей и там внизу будет ссылка на то, как приобрести платную часть курса.
Добрый день, Татьяна.
В конце 9 лекции, из-за нехватки времени, профессор хотел дополнительно добавить и прислать код:
«Одна — это когда вы тянете вниз Table View и вам показывают еще больше твитов, то есть это способ обновить таблицу с твитами.
Вторая — когда вы тянете вниз, то работает маленькое “вращающееся” колесико ( spinner) пока данные загружаются из сети. Как только данные пришли, “колесико” исчезает, а таблица обновляется.
Я добавлю это код для вас и пришлю.»
Не нашел его в репозитарии https://github.com/BestKora/Swift-2.3-Solution-Spring-2016, возможно, код находится в другом месте?
Надо искать в DEMO https://github.com/BestKora/Swift-2.3-Demo-Spring-2016
это же код профессора, а Solution — это мои решения Заданий, но там тоже есть.
Это в TweetTableViewController называется refreshControl.
Точно, нашел. Спасибо.
Татьяна, почему-то картинки пользователей (иконки ProfileImageView), в приложении Smashtag хуже по качеству, чем в оригинальном клиенте Twitter, подскажите пож., в чем может быть дело, что посмотреть? Уменьшал размер картинок с 60х60 на 40х40, но все равно видно, что получаемые картинки имеют меньшее разрешение. И на симуляторе и на реальном устройстве.