1

在 Android 中,很容易创建一个带有下边距的网格列表:

在此处输入图像描述

我为 iOS 找到了这个解决方案,但它不会在单元格和父视图之间添加边距,只在单元格之间添加边距

let itemSpacing: CGFloat = 3
let itemsInOneLine: CGFloat = 2
flow.sectionInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
let width = UIScreen.main.bounds.size.width - itemSpacing * CGFloat(itemsInOneLine - 1) //collectionView.frame.width is the same as  UIScreen.main.bounds.size.width here.
flow.itemSize = CGSize(width: floor(width/itemsInOneLine), height: width/itemsInOneLine)
flow.minimumInteritemSpacing = 3
flow.minimumLineSpacing = 3

在此处输入图像描述

我该如何解决?

PS 我不想硬编码任何东西,所以它应该适用于所有 iPhone/iPad 设备

4

2 回答 2

2
let itemSpacing: CGFloat = 3
let itemsInOneLine: CGFloat = 2
let flow = UICollectionView().collectionViewLayout as! UICollectionViewFlowLayout
flow.sectionInset = UIEdgeInsets(top: itemSpacing, left: itemSpacing, bottom: itemSpacing, right: itemSpacing)
flow.minimumInteritemSpacing = itemSpacing
flow.minimumLineSpacing = itemSpacing
let cellWidth = (UIScreen.main.bounds.width - (itemSpacing * 2) - ((itemsInOneLine - 1) * itemSpacing)) / itemsInOneLine
flow.itemSize = CGSize(width: cellWidth, height: cellWidth)
于 2019-04-13T17:53:36.533 回答
1

将常数为 5 的前导、尾随和顶部约束添加到您的集合视图。这将解决您的保证金问题

于 2019-04-12T23:13:33.057 回答