2015-09-06 36 views

回答

2

你說得對。 UICollectionViewCell不能像其他視圖一樣使用相同的AutoLayout規則。每個單元由UICollectionView上設置的佈局類別控制。

從技術上講,您可以在界面生成器中拖動手柄並調整其大小,但對於不同的屏幕寬度和方向它不會動態調整。

我能想到的兩個選項:

  1. 覆蓋的sizeForItemAtIndexPath:在視圖控制器和設置爲父容器的寬度編程。見更新1上question here對於如何做到這一點,或查看Apple documentation here的更多背景信息
  2. 考慮使用一個UITableView如果所有的細胞永遠是全寬
0

可以使用的CollectionView佈局。此代碼應該對您有所幫助:

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

    var size = CGSize.zero 

    if let layout = collectionViewLayout as? UICollectionViewFlowLayout { 
     size = layout.itemSize; 
     size.width = collectionView.bounds.width 
    } 

    return size 
} 

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { 
    collectionView.collectionViewLayout.invalidateLayout() 
} 
相關問題