项目集合视图的大小高度
Size height for item collection view
collection view中所有cell的size height设置成等高的方法是什么?
我有这个方法:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return getCellSize()
}
func getCellSize() -> CGSize {
let screenWidth: CGFloat = UIScreen.main.bounds.width
let spaceBetweenItems: CGFloat = CGFloat(2) * 10
let width: CGFloat = (screenWidth - 10 - spaceBetweenItems) / CGFloat(3.0)
return CGSize(width: width, height: CGFloat(140.0))
}
这些是我的海关单元限制:
这是我的实际输出:
我的代码有什么问题或缺少一个约束?
在带有集合视图的故事板中:select 您的集合视图 -> 转到尺寸检查器 -> 将“估计尺寸”字段从“自动”更改为“none”
like here。
但是如果你的文本太大,它会被像“一些大文本..”这样的点剪裁,所以你可以在属性检查器中将 UILabel 的字段“Autoshrink”更改为“最小字体比例”。
创建约束 CollectionViewHeight。
@IBOutlet weak var collectionViewHeight: NSLayoutConstraint!
然后,试试这个代码。
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
let height = collectionView.collectionViewLayout.collectionViewContentSize.height
collectionViewHeight.constant = height
self.view.layoutIfNeeded()
}
collection view中所有cell的size height设置成等高的方法是什么?
我有这个方法:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return getCellSize()
}
func getCellSize() -> CGSize {
let screenWidth: CGFloat = UIScreen.main.bounds.width
let spaceBetweenItems: CGFloat = CGFloat(2) * 10
let width: CGFloat = (screenWidth - 10 - spaceBetweenItems) / CGFloat(3.0)
return CGSize(width: width, height: CGFloat(140.0))
}
这些是我的海关单元限制:
这是我的实际输出:
我的代码有什么问题或缺少一个约束?
在带有集合视图的故事板中:select 您的集合视图 -> 转到尺寸检查器 -> 将“估计尺寸”字段从“自动”更改为“none” like here。 但是如果你的文本太大,它会被像“一些大文本..”这样的点剪裁,所以你可以在属性检查器中将 UILabel 的字段“Autoshrink”更改为“最小字体比例”。
创建约束 CollectionViewHeight。
@IBOutlet weak var collectionViewHeight: NSLayoutConstraint!
然后,试试这个代码。
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
let height = collectionView.collectionViewLayout.collectionViewContentSize.height
collectionViewHeight.constant = height
self.view.layoutIfNeeded()
}