2

這裏有一個UICollectionView,紫色細胞:只需用故事板,制約設置單元格的大小UICollectionView

enter image description here

很簡單,我想細胞是集合視圖的1/2寬度。 (所以TBC,這將是在集合視圖細胞的兩行排列。)

(集合視圖僅僅是全屏,讓每一個細胞都在屏幕寬度的一半。)

你如何做到這一點在故事板?

如果我試圖以正常方式控制拖動,它基本上不起作用。

這些都是簡單的完全靜態單元格(不是動態的)。


對於谷歌搜索的人在這裏,節省您的時間:這正是(2016),使兩跨UICollectionView佈局最簡單的方法;細胞之間沒有空隙。

// Two - two-across UICollectionView 
// use a completely standard UIViewController on the storyboard, 
// likely change scroll direction to vertical. 
// name the cell identifier "cellTwo" on the storyboard 
import UIKit 
class Two:UICollectionViewController 
    { 
    override func viewDidLoad() 
     { 
     super.viewDidLoad() 

     let w = collectionView!.bounds.width/2.0 

     let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout() 
     layout.sectionInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0) 
     layout.itemSize = CGSize(width:w,height:w) 
     layout.minimumInteritemSpacing = 0 
     layout.minimumLineSpacing = 0 

     collectionView!.collectionViewLayout = layout 

     // Note!! DO NOT!!! register if using a storyboard cell!! 
     // do NOT do this: 
     // self.collectionView!.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier) 
     } 

    override func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int 
     { return 1 } 
    override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int 
     { return 5 } 
    override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell 
     { 
     return collectionView.dequeueReusableCellWithReuseIdentifier("cellTwo", forIndexPath: indexPath) 
     } 
    } 
+1

看到這個答案:http://stackoverflow.com/a/38028456/1630618 – vacawama

回答

4

你不能在故事板中做到這一點。集合視圖寬度直到運行時才知道,並且集合視圖單元格不在自動佈局下,因此您無法表達其他任何內容的「1/2寬度」概念。 (如果您事先知道收集視圖寬度,則可以使用故事板中的流佈局來絕對地設置單元格大小,方法是將頭部分開;但您不知道,因爲寬度因設備而異)

+0

明白了,謝謝你的解釋。 – Fattie

相關問題