Введение Уже давно во всех известных нам галактиках мобильные приложения представляют информацию в виде списков – будь то доставка еды на Татуине, имперская почта или обычный дневник джедая.
С незапамятных времен мы писали пользовательский интерфейс в UITableView, не задумываясь об этом.
Накоплено бесчисленное количество ошибок и знаний о конструкции этого инструмента и лучших практиках.
И когда мы получили очередной дизайн бесконечной прокрутки, мы поняли: пора задуматься и дать отпор тирании UITableViewDataSource и UITableViewDelegate.
Почему коллекция?
До сих пор коллекции оставались в тени; многие опасались их чрезмерной гибкости или считали их функциональность избыточной.В самом деле, почему бы просто не использовать стек или таблицу? Если по первому мы быстро упираемся в низкую производительность, то по второму не хватает гибкости при реализации расположения элементов.
Действительно ли коллекции так страшны и какие подводные камни они таят? Мы сравнили.
- Ячейки таблицы содержат ненужные элементы: представление содержимого, представление группового редактирования, представление действий со слайдами, представление аксессуаров.
- Использование UICollectionView обеспечивает согласованность при работе с любым списком объектов, поскольку его API в целом аналогичен UITableView.
- Коллекция позволяет использовать нестандартные типы макетов, а также сопутствующие атрибуты анимированных переходов.
- Возможность использовать Pull для обновления
- Никаких лагов при рендеринге
- Возможность пролистывания ячеек.
Избавившись от класса таблицы, мы смогли написать адаптер, расширяемый для целого семейства списков, с возможностью безболезненного возврата к таблице под капотом в любое время.
Адаптеры
Коллекции — это, конечно, хорошо, но пробовали ли вы избавиться от привычного шаблона с источниками данных и делегатами, чтобы создание экранного списка занимало не более 10 строк? Для сравнения вспомним классическую реализацию экрана списка в UITableView.Теги: #iOS #разработка iOS #Разработка мобильных приложений #uikit #Swift #uicollectionview #uitableview #списки #адаптер шаблонаfinal class CurrencyViewController: UIViewController { var tableView = UITableView() var items: [ViewModel] = [] func setup() { tableView.delegate = self tableView.dataSource = self tableView.backgroundColor = .
white
-
Как Конвертировать Mts В Mov
19 Oct, 24 -
Приманка Интернета
19 Oct, 24 -
Как Warcraft 3 Помог Мне Выучить Пару Языков
19 Oct, 24 -
Brainbench: Bench Games Началась!
19 Oct, 24 -
Рост Онлайн-Рекламы Немного Замедлился
19 Oct, 24