UICollectionView с другим размером ячейки

Моя цель - создать UICollectionView с макетом, как показано ниже.

Это возможно без создания кастома UICollectionViewLayout?

4 ответа

Используйте метод UICollectionViewDelegateFlowLayout.

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {

        let width : CGFloat
        let height : CGFloat

        if indexPath.item == 0 {
            width = 100
            height = 100
        } else {
            width = 50
            height = 50
        }
        return CGSizeMake(width, height)

}

Без создания пользовательского макета представления коллекции невозможно достичь того, чего вы хотите.

Вы можете создать собственный размер ячейки, используя метод делегата sizeforitematindexpath,

Кроме того, проверьте эту ссылку, которая помогает создать собственный макет.

Ответ от @Dejan Atanasov, но для Swift 5

      extension MainLobbyVC: UICollectionViewDelegateFlowLayout {
    
    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
        
        let width : CGFloat
        let height : CGFloat
        if indexPath.item == 0 {
            width = 100
            height = 100
        } else {
            width = 50
            height = 50
        }
        return CGSizeMake(width, height)
    }
}
Другие вопросы по тегам