Flowlayout - получение нечетных результатов при изменении значений вставки раздела - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть некоторый код, чтобы сделать макет UICollection в Xcode.Смотрите код.Когда у меня есть следующие значения для вставки раздела, он работает нормальноЯ получаю 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)
    }

Я добавил команду печати, чтобы посмотреть, смогу ли я диагностировать проблему.

Так что для левого значения15, я получаю: 414,60,354 и 118

и для значения 5 414,20,394,131.33333333333334

Значит, все они в порядке?

Я также попытался изменить itemsPerRow на 2, и тогда я получил только 1 за строку!Ops!Так что это немного странно ....

...