Flowlayout-在更改部分插入值时产生奇怪的结果

时间:2019-02-12 21:32:32

标签: swift flowlayout

我有一些代码可以在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!行动!所以有点奇怪。。。

0 个答案:

没有答案