- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用流式布局的 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/
我是一名优秀的程序员,十分优秀!