UICollectionViewCell 间距以填充最大区域

Posted

技术标签:

【中文标题】UICollectionViewCell 间距以填充最大区域【英文标题】:UICollectionViewCell spacing to fill maximum area 【发布时间】:2018-04-27 14:04:17 【问题描述】:

如果您相信的话,第一次使用 UICollectionView,我想知道如何让单元格基本上填满最大允许空间。

SE 的视图,它正在填充……大部分都可以,我想要它。当然,我希望积木一直到黑色区域的底部(颜色当然是临时的),但它已经足够接近了。

当然,在 iPhone X 和其他更大屏幕的手机上,它会保持“最小”间距,但我希望它自动调整间距以填充该区域。顶部有两个方块,底部有两个方块,中间有均匀分布的空间。

奇怪的是,当我在常规视图中手动操作它们时,我能够很容易地做到这一点。我开始尝试使用UICollectionView,因为一旦它旋转到横向模式,它就开始变得非常难看。这是如何使用更手动的方法设置这些项目的照片。

有什么建议吗?似乎很容易切换……但我似乎撞到了墙上,被难住了。我是否在这里遗漏了一些如此明显的东西,还是什么?!?


哦,我也玩过:

-(CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section

以编程方式设置行项目的间距,但这也不是没有问题。在那里,我正在检查屏幕高度,除以项目数并使用其变化作为间距。

起初这似乎“工作”。

但在我的测试中,该函数仅在视图第一次加载时触发,然后仅在进入横向模式时触发。当它退出并返回纵向时,它不会重新触发和重新计算。因此...保持(现在是新的)横向间距。

【问题讨论】:

您的商品宽度和尺寸是多少?你可能需要这个***.com/questions/49573790/… 【参考方案1】:

您需要创建 UICollectionViewFlowLayout 并以编程方式计算项目的大小。

或覆盖 UICollectionViewDelegateFlowLayout 项目大小。

https://developer.apple.com/documentation/uikit/uicollectionviewdelegateflowlayout/1617708-collectionview

【讨论】:

以上是关于UICollectionViewCell 间距以填充最大区域的主要内容,如果未能解决你的问题,请参考以下文章

UICollectionViewCell 间距以填充最大区域

以没有中间间距的方式设置 UICollectionViewCell 的大小

删除每个 UICollectionViewCell 之间的间距并将其移动到 UICollectionView 的外部单元格

相等的水平间距UICollectionView,包括插图 - UICollectionViewFlowLayout?

iOS - 删除 UICollectionViewCell 之间的垂直空间

iOS UICollectionViewCell