我有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()
}