2017-04-21 71 views
0

如何使用集合視圖實現圖像中顯示的佈局?如何在集合視圖中實現不同行數的列數

enter image description here

我試圖使用瀑布流佈局從下面的鏈接,但沒有獲得成功,去實現它。 https://github.com/chiahsien/CHTCollectionViewWaterfallLayout

下面是我嘗試這樣做的代碼。

override func viewDidLoad() { 
    super.viewDidLoad() 
    let identifier = String(describing: collectionCell.self) 
    collectionView.register("collectionCell", forCellWithReuseIdentifier: "collectionCell") 
    collectionView.register(UINib(nibName: "collectionCell", bundle: nil), forCellWithReuseIdentifier: identifier) 
    let layout = CHTCollectionViewWaterfallLayout() 
    layout.sectionInset = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10) 
    layout.minimumInteritemSpacing = 0 
    layout.minimumColumnSpacing = 10 
    collectionView.collectionViewLayout = layout 
} 

//用於設置電池

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

    let width = Double((self.collectionView.bounds.size.width-(4*minimumSpaceBetweenCells))/3) 

    if indexPath.row == 0 { 
     return CGSize(width:width * 2, height: width * 2) 
    } 
    else 
    { 
     return CGSize(width:width, height: width) 
    } 

} 

的大小,但它只是顯示2列大小相同的所有行。

請讓我知道,如果有人有想法如何做到這一點。

在此先感謝。

+0

我認爲你必須編碼佈局。請參閱在互聯網上找到的大多數教程,它們分別具有相同的項目高度或寬度以及可變的寬度或高度。在你的情況下,你有兩種不同高度和寬度的物品。你必須自己佈置這些物品。 –

+2

http://stackoverflow.com/questions/43186246/uicollectionview-layout-like-snapchat/43409440#43409440?只需計算自己的框架,這很容易。 – Larme

+0

謝謝@Larme我從你提供的鏈接創建了一個快速版本,它適用於我。 –

回答

0

我會建議在每個collectionViewCell中創建一個新的tableView,並設置tableView的numberOfRows作爲你想要的列數。

相關問題