2017-08-16 70 views
0

我有一個集合視圖。我想讓每個單元格以編程方式成行。這是我迄今爲止所做的:收集單元格中的某一行的單元格很快?

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 
     return self.challenges.count 
    } 

    // make a cell for each cell index path 
    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 

     // get a reference to our storyboard cell 
     let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath as IndexPath) as! MyCollectionViewCell 


     cell.myLabel.text = self.challenges[indexPath.item] 
     cell.backgroundColor = .orange 

     return cell 
    } 


    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { 

     print("You selected cell #\(indexPath.item)!") 
    } 

} 



class MyCollectionViewCell: UICollectionViewCell { 

    @IBOutlet weak var myLabel: UILabel! 

} 

任何想法接下來要做什麼? enter image description here

回答

0

假設你希望每個單元佔用的視圖的整個寬度:

最簡單的方式做到這一點,因爲你已經設置的CollectionView到parentViewController的代表,是落實以下功能:func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize並使其返回大小爲self.view.bound.width爲寬度。

該函數是UICollectionViewDelegateFlowLayout的一部分,並且使其工作的唯一要求是實現所述函數的類是collectionView的委託。

+0

我無法找到您提到的功能。我試圖按照如下方式編寫它:但我根本不會被調用: func collectionView(_ collectionView:UICollectionView,layout collectionViewViewLayout:UICollectionViewLayout,sizeForItemAt indexPath:IndexPath) - > CGSize {size = CGSize(width:UIScreen .main.bounds.width,height:10) return size; } –

+0

viewcontroller是否包含實現UICollectionViewDelegateFlowLayout協議的函數?如果是這樣,你是否將它設置爲collectionView的代表? – Houwert

相關問題