gpt4 book ai didi

ios swift UICollectionVIew 问题 : The behavior of the UICollectionViewFlowLayout is not defined because

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

我正在使用流式布局的 UICollectionView。我制作了一个水平的自定义 UICollectionView。错误-

未定义 UICollectionViewFlowLayout 的行为,因为:项目高度必须小于 UICollectionView 的高度减去部分插入顶部和底部值,再减去内容插入顶部和底部值。

相关的 UICollectionViewFlowLayout 实例是,它附加到;层 = ; contentOffset: {-8, -8}; contentSize: {0, 100}> collection view layout: .2019-11-18 11:51:59.017124+0530 eVyapaar_Grocery[3964:1811183] 在 UICollectionViewFlowLayoutBreakForInvalidSizes 处创建符号断点以在调试器中捕获此问题。

Here is my code:
collectionView.delegate = self
collectionView.dataSource = self
collectionView.register(UINib(nibName: "cellID", bundle: nil), forCellWithReuseIdentifier:"cellID")
collectionView.contentInset = UIEdgeInsets(top: 8, left: 8, bottom: 8, right: 8)
collectionView.showsHorizontalScrollIndicator = false
collectionView.isScrollEnabled = true
if let layout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout {
layout.scrollDirection = .horizontal
collectionView!.collectionViewLayout = layout
}

extension ViewController: UICollectionViewDelegateFlowLayout {
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
if collectionView == myCcollectionView {
var width: CGFloat = 0
if UIDevice.isIpad {
width = ((UIScreen.main.bounds.width/6)-6)
} else {
width = ((UIScreen.main.bounds.width/3)-6)
}
return CGSize(width: width, height: width)
}
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
return 1

}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
return 0
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
return UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
}
}

最佳答案

如错误所述,您的单元格大小必须小于 collectionView 的高度和宽度减去内容插图,以适合 View 内的单元格。由于我无法使用您提供的代码看到您的 collectionView 的大小,因此我无法给您明确的答案,但请尝试减小您的 collectionView 单元格的大小。另请注意,您正在设置 contentInsets 2 个不同的位置,

这里:

collectionView.contentInset = UIEdgeInsets(上:8,左:8,下:8,右:8)

这里:

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
返回 UIEdgeInsets(上:0,左:0,下:0,右:0)
}

编辑:尝试给他们这个尺寸:

扩展 View Controller :UICollectionViewDelegateFlowLayout {
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
如果 collectionView == myCcollectionView {
可变宽度:CGFloat = 0
如果 UIDevice.isIpad {
宽度 = ((collectionView.frame.width/6)-8)
} 别的 {
宽度 = ((collectionView.frame.width/3)-8)
}
返回 CGSize(宽度:宽度,高度:宽度)
}
}

关于ios swift UICollectionVIew 问题 : The behavior of the UICollectionViewFlowLayout is not defined because,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58911252/

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