我有一些代码可以在Xcode中对UICollection进行布局。参见代码。当我具有以下部分插图的值时,它可以正常工作。我每行得到3张图像。当我减小inset.left值(试图使项目之间的差距变小)时,我突然每行只得到2个项目。这真让我感到困惑。任何人都看不到任何可能导致此问题的代码不正确吗?
fileprivate let itemsPerRow: CGFloat = 3
fileprivate let sectionInsets = UIEdgeInsets(top: 50.0, left: 15.0, bottom: 50.0, right: 15.0)
extension GalleryCollectionViewController : UICollectionViewDelegateFlowLayout {
//1
func collectionView(_ collectionView: UICollectionView,
layout collectionViewLayout: UICollectionViewLayout,
sizeForItemAt indexPath: IndexPath) -> CGSize {
//2
let paddingSpace = sectionInsets.left * (itemsPerRow + 1)
let availableWidth = view.frame.width - paddingSpace
let widthPerItem = availableWidth / itemsPerRow
print("Collection Flow Layout: paddingSpace:\(paddingSpace), availableWidth:\(availableWidth), widthPerItem: \(widthPerItem)")
return CGSize(width: widthPerItem, height: widthPerItem)
}
我添加了print命令,以查看是否可以诊断问题。
因此对于15的左值,我得到: 414,60,354和118
且值为5 414,20,394,131.33333333333334
所以他们似乎都还好吗?
我还尝试将itemsPerRow更改为2,然后每行只得到1!行动!所以有点奇怪。。。