Возможно ли полностью статическое UICollectionView?

В UITableView возможна полная статическая конфигурация tableView. Вы можете отключить источник данных UITableView и поместить каждую ячейку в раскадровку (или xib) с помощью IB.

Я пробовал то же самое с UICollectionView. отключите источник данных UICollectionView. Поместите каждую ячейку в UICollectionView на раскадровку. Я построил его без ошибок. Но это не сработало. ячейки не отображались вообще.

Возможно ли UICollectionView без источника данных?

Ответ 1

Нет.

Создание статического UICollectionViewController недопустимо. У вас должен быть делегат источника данных.

Я также хочу указать, что не существует статического UITableView, а статического UITableViewController. Это разница.

Ответ 2

Вы можете легко создать статический UICollectionViewController.

Просто создайте каждую ячейку в построителе интерфейса, дайте им повторно использовать идентификаторы (например, "Home_1" "Home_2" "Home_3" ) и заполните эти методы следующим образом:

class HomeViewController: UICollectionViewController, UICollectionViewDelegateFlowLayout {  
    let cellIdentifiers:[String] = ["Home_1","Home_2","Home_3"]
    let sizes:[CGSize] = [CGSize(width:320, height:260),CGSize(width:320, height:160),CGSize(width:320, height:100)]

    override func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return cellIdentifiers.count
    }
    override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        return collectionView.dequeueReusableCell(withReuseIdentifier: cellIdentifiers[indexPath.item], for: indexPath)
    }
    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
        return sizes[indexPath.item]
    }
}

Затем установите контроллер представления в соответствующий класс и, в первую очередь, статическую коллекцию. Мне жаль говорить, но это BY FAR лучший способ поддерживать портретные и пейзажные представления, когда у вас есть группы элементов управления...