我的UIView
内有UICollectionViewCell
我需要复制。我需要将此视图固定在屏幕的左侧和右侧。但是,我找不到任何方法来控制UICollectionViewCell
的宽度。
我只是错过了什么?
答案 0 :(得分:2)
UICollectionViewCell
不会使用与其他视图相同的AutoLayout规则。每个单元格由UICollectionView
上设置的布局类控制。
从技术上讲,您可以在Interface Builder中拖动手柄并以此方式调整大小,但对于不同的屏幕宽度和方向,它不会是动态的。
我可以想到两个选择:
sizeForItemAtIndexPath:
并以编程方式设置为父容器的宽度。有关完成此操作的信息,请参阅question here上的更新1,或查看Apple documentation here了解更多背景信息答案 1 :(得分: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()
}