gpt4 book ai didi

ios - 某些 iPhone 中的 2 列 collectionview 大小问题

转载 作者:行者123 更新时间:2023-11-28 07:34:24 25 4
gpt4 key购买 nike

我正在使用这个代码

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let padding: CGFloat = 50
let collectionViewSize = collectionView.frame.size.width - padding

return CGSize(width: collectionViewSize/2, height: collectionViewSize/2)
}

我可以在除 iPhone X 和 iphone XR 之外的所有 iPhone 上获得 2 列 Collection View ,我不知道为什么

enter image description here

如何为所有 iPhone 强制设置 2 列?

最佳答案

您可以通过创建新布局并设置它的 itemSizeminimumInteritemSpacingminimumLineSpacing 来设置 collectionView 的布局然后将新布局指定为 collectionView.collectionViewLayout:

func setCollectionViewLayout(withPadding padding: CGFloat) {
let layout = UICollectionViewFlowLayout()
let size = (collectionView.frame.width - padding) / 2
layout.itemSize = CGSize(width: size, height: size)
layout.minimumInteritemSpacing = 0
layout.minimumLineSpacing = 0
collectionView.collectionViewLayout = layout
}

然后在viewDidLayoutSubviews中调用这个方法(这是frame加载的时刻,可以用collectionView的frame来计算)

override func viewDidLayoutSubviews() {
setCollectionViewLayout(withPadding: 50)
}

注意:我建议您将 collectionView 的前导和尾随约束设置为常量 25,而不是使用填充

关于ios - 某些 iPhone 中的 2 列 collectionview 大小问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53615886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com