我有UIView
在我的UICollectionViewCell
裏面,我需要轉載。我需要將此視圖固定在屏幕的左側和右側。但是,我找不到任何方法來控制UICollectionViewCell
的寬度。我如何才能讓UICollectionViewCell成爲設備的整個寬度?
我是否錯過了什麼?
我有UIView
在我的UICollectionViewCell
裏面,我需要轉載。我需要將此視圖固定在屏幕的左側和右側。但是,我找不到任何方法來控制UICollectionViewCell
的寬度。我如何才能讓UICollectionViewCell成爲設備的整個寬度?
我是否錯過了什麼?
你說得對。 UICollectionViewCell
不能像其他視圖一樣使用相同的AutoLayout規則。每個單元由UICollectionView
上設置的佈局類別控制。
從技術上講,您可以在界面生成器中拖動手柄並調整其大小,但對於不同的屏幕寬度和方向它不會動態調整。
我能想到的兩個選項:
sizeForItemAtIndexPath:
在視圖控制器和設置爲父容器的寬度編程。見更新1上question here對於如何做到這一點,或查看Apple documentation here的更多背景信息可以使用的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()
}