Положение прокрутки смещается, когда разбиение на страницы выполняется с помощью CollectionView Self-Sizing - PullRequest
0 голосов
/ 21 января 2019

Я хочу отобразить UICollectionViewCell, ширина которого фиксирована, а высота колеблется.

Из-за разбиения на страницы при увеличении количества элементов возникает проблема смещения позиции прокрутки.

Я пробовал это по-разному, но это не изменилось.

Вот код.(Только важные моменты)

final class OwnerTimelineViewController: UIViewController {
    @IBOutlet private weak var collectionView: UICollectionView!

    override func viewDidLoad() {
        super.viewDidLoad()

        if let flowLayout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout {
            flowLayout.minimumLineSpacing = 16
            flowLayout.sectionInset = UIEdgeInsets(top: 16, left: 16, bottom: 16, right: 16)
            flowLayout.estimatedItemSize = CGSize(width: collectionView.bounds.width - 32,
                                                  height: 300)
        }

        collectionView.dataSource = self
        collectionView.registerNib(type: TimelineImagesCollectionViewCell.self)
        collectionView.registerNib(type: TimelineMessageCollectionViewCell.self)
    }
}
final class TimelineImagesCollectionViewCell: UICollectionViewCell {
    override func preferredLayoutAttributesFitting(_ layoutAttributes: UICollectionViewLayoutAttributes) -> UICollectionViewLayoutAttributes {
        layoutIfNeeded()
        let size = contentView.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize)
        var frame = layoutAttributes.frame
        frame.size.height = ceil(size.height)
        layoutAttributes.frame = frame
        return layoutAttributes
    }
}

Как сделать так, чтобы он плавно прокручивался?

...