UICollectionViewCell проблема размера при вращении iphone на симуляторе - PullRequest
0 голосов
/ 01 июня 2019

В настоящее время я работаю над задачей, в которой предполагается расширение ячеек UICollectionView на основе метки внутри.Я написал ограничения программно для этого.Изменение размера происходит во время этого вызова.

override func preferredLayoutAttributedFitting(_ layoutAttributes: UICollectionViewLayoutAttributes) -> UICollectionViewLayoutAttributes {
    setNeedsLayout()
    layoutIfNeeded()
    let size = contentView.systemLayoutSizeFitting(layoutAttributes.size)
    var frame = layoutAttributes.frame
    frame.size.width = ceil(size.width)
    layoutAttributes.frame = frame
    return layoutAttributes
}

Этот код работает нормально, как и ожидалось, однако, когда я пытаюсь повернуть ячейки, которые не появлялись до вращения, ячейки для них не расширяются.

Есть ли какой-либо вызов, который я могу сделать в cellForRowAtIndex или в другом месте, чтобы каждый раз вызывать этот предпочитаемый объект?

Или существует более простой процесс, чем этот, чтобы избежать этого вычисления и напрямую обновитьразмер ячейки?В макете обновлен смета для оценки, но мне все еще нужно вызывать этот метод.

1 Ответ

0 голосов
/ 16 июля 2019

использовать метод viewWillTransition

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
        super.viewWillTransition(to: size, with: coordinator)
        self.collectionView.collectionViewLayout.invalidateLayout()
    }
...