Я работаю над версией iOS приложения, которое я уже разработал на Android. Это приложение имеет следующую 2-х столбчатую сетку с ячейками с фиксированной шириной, но с переменной высотой:
Достижение этого в версии Android было легко, потому что Google предоставляет StaggeredGridLayoutManager
для своего RecyclerView
. Вы указываете количество столбцов и направление прокрутки, и вы закончили.
Макет UICollectionView
UICollectionViewFlowLayout
по умолчанию UICollectionViewFlowLayout
не позволяет разбивать макет, который я ищу, поэтому я должен реализовать собственный макет. Я смотрел 2 видео WWDC, которые рассказывают об этой теме (Что нового в представлении таблицы и коллекции и Расширенные пользовательские интерфейсы с коллекционными видами), и я более или менее имею представление о том, как это должно быть реализовано.
Шаг 1. Сначала вычисляется аппроксимация макета.
Шаг 2. Затем ячейки создаются и сортируются с автоопределением.
Шаг 3. Затем контроллер уведомляет размеры ячеек, чтобы макет обновлялся.
Мое сомнение возникает при попытке скопировать эти шаги. Я нашел tutorial, который объясняет создание настраиваемого макета с шагами в шахматном порядке, но он не использует автозапуск для получения размера клетки. Что оставляет меня со следующими вопросами:
На шаге 2, как и когда я могу получить размер ячейки?
На шаге 3 как и когда я могу уведомить макет изменений?