Лекция 9 CS193P Spring 2016 — Table View (Табличное представление данных).

Вся Лекция 9 посвящена единственной и очень важной теме — визуальной таблице Table View, которая является  в iOS основным способом отображения и взаимодействия с большими наборами данных. Таблица Table View изначально настроена на отображение очень большого объема данных (сотни тысяч и более строк) и использует эффективный механизм формирования очереди повторно используемых ячеек (Dequeue Reusable Cell) и делегирование dataSource для загрузки динамических данных.

Первая часть Лекции 9 представляет целый спектр проблем, связанных как со структурой и составными частями Table View, так и с использованием подкачки данных в таблицу из интернета в многопоточной среде. В условиях, когда ячейки в таблице Table View «уходят» и «приходят» на экран, а также повторно используются в целях эффективности, законы «Мира многопоточности» проявляют себя в полную силу. Пол Хэгерти показывает две вещи, которые вы все должны учитывать в условиях многопоточности.

Table View  может быть источником «переезда»( segue) на другой MVC. Каждая строка в таблице может иметь два различных типа segues. Один — если вы кликните на строке, и второй — если вы кликните на маленьком кружочке  с буквой i (информация).
Начиная с iOS 8 механизм Autolayout может автоматически настраивать высоту ячеек с использованием UITableViewAutomaticDimensionestimatedRowHeight .
Вторая, не менее важная часть, Лекции 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 CS193P Spring 2016 — Table View (Табличное представление данных).: 6 комментариев

    • Вы можете открыть пост любой лекции, начиная с 3-ей и там внизу будет ссылка на то, как приобрести платную часть курса.

  1. Добрый день, Татьяна.

    В конце 9 лекции, из-за нехватки времени, профессор хотел дополнительно добавить и прислать код:

    «Одна — это когда вы тянете вниз Table View и вам показывают еще больше твитов, то есть это способ обновить таблицу с твитами.
    Вторая — когда вы тянете вниз, то работает маленькое “вращающееся” колесико ( spinner) пока данные загружаются из сети. Как только данные пришли, “колесико” исчезает, а таблица обновляется.
    Я добавлю это код для вас и пришлю.»

    Не нашел его в репозитарии https://github.com/BestKora/Swift-2.3-Solution-Spring-2016, возможно, код находится в другом месте?

  2. Татьяна, почему-то картинки пользователей (иконки ProfileImageView), в приложении Smashtag хуже по качеству, чем в оригинальном клиенте Twitter, подскажите пож., в чем может быть дело, что посмотреть? Уменьшал размер картинок с 60х60 на 40х40, но все равно видно, что получаемые картинки имеют меньшее разрешение. И на симуляторе и на реальном устройстве.

Обсуждение закрыто.