可以通过 UIScreen 类的 bounds 属性获取屏幕的尺寸,再根据需要获取宽度和高度。
let screenWidth = UIScreen.main.bounds.width
let screenHeight = UIScreen.main.bounds.height
根据屏幕宽度和每个 cell 的宽度,可以计算出 collection view 的列数。这里可以通过 ceil() 函数向上取整,保证每一列都能放下至少一个 cell。
let cellWidth: CGFloat = 100 // 举例,假设每个 cell 的宽度是 100
let minimumSpacing: CGFloat = 10 // 举例,假设 cell 之间的间距是 10
let numberOfColumns = Int(ceil(screenWidth / (cellWidth + minimumSpacing)))
let layout = UICollectionViewFlowLayout()
layout.itemSize = CGSize(width: cellWidth, height: cellHeight) // 设置 cell 的尺寸
layout.minimumInteritemSpacing = minimumSpacing // 设置 cell 之间的水平间距
layout.minimumLineSpacing = minimumSpacing // 设置 cell 之间的垂直间距
collectionView.collectionViewLayout = layout