在iPhone 6 Plus上,集合视图单元格很好,但是当测试其他设备尺寸如iPhone 5时,我会用"
进行轰炸017-06-15 01:59:25.744 HyperTest [3865:8825385]未定义UICollectionViewFlowLayout的行为,因为: 2017-06-15 01:59:25.744 HyperTest [3865:8825385]项目宽度必须小于UICollectionView的宽度减去部分插入左右值,减去内容插入左右值。 2017-06-15 01:59:25.745 HyperTest [3865:8825385]相关的UICollectionViewFlowLayout实例是,并附加到; layer =; contentOffset:{0,0}; contentSize:{414,219}>集合视图布局:。 2017-06-15 01:59:25.745 HyperTest [3865:8825385]在UICollectionViewFlowLayoutBreakForInvalidSizes上创建一个符号断点,以便在调试器中捕获它。
特别是当我这样做时:
let layout = billFeedCollectionView.collectionViewLayout as? UICollectionViewFlowLayout // casting is required because UICollectionViewLayout doesn't offer header pin. It's feature of UICollectionViewFlowLayout
layout?.sectionHeadersPinToVisibleBounds = true
layout?.estimatedItemSize = UICollectionViewFlowLayoutAutomaticSize
无论如何,我可以解决这个问题吗?我需要确保细胞能够适应所有设备。
答案 0 :(得分:2)
通过确认您班级的UICollectionViewDelegate
。委托方法sizeForItemAtIndexPath
将从UICollectionViewDelegateFlowLayout
拨打电话,这将在您的班级中调用,现在您可以返回UICollectionViewCell
的大小。
这对我有用
方式:强>
collectionView.delegate = self
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
return CGSizeMake(collectionView.frame.size.width, collectionView.frame.size.height)
}
答案 1 :(得分:0)
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: IndexPath) -> CGSize {
let cellsize = CGSize(width: (CollectionView.bounds.size.width/2) - 12, height:(CollectionView.bounds.size.height/3) - 20)
return cellsize
}
此处CollectionView是UICollectionView的出口
答案 2 :(得分:0)
当您在UITableViewCell中具有collectionView时,该单元格实际上会将collectionView的高度调整为0也是可能的。
在我的情况下,collectionView
显示UIImageView
的数组以在每个单元格中显示一些图像库。
如果该单元格不应该显示任何图像(例如,没有图像的文本),则collectionView
被隐藏。
collectionView
,如果放在StackView中可能需要限制高度,并且要避免冲突,您可能需要将其设置为优先级999。
然后,当您隐藏 collectionView
时,它将实际上尝试将高度设置为0。
collectionView仍可以在其中包含图像,这将触发错误。
解决方案:在配置单元格时清空datasource
并重新加载collectionView
。