UICollectionView переходит при начале прокрутки при использовании большого заголовка - PullRequest
2 голосов
/ 21 января 2020

Я создал тестовое приложение, увидев это в одном из моих собственных приложений. У меня есть представление коллекции, встроенное в контроллер навигации.

main.storyboard

Все это связано с классом ViewController.

class ViewController: UIViewController {

    private let reuseIdentifier = "userCell"
    @IBOutlet weak var collectionView: UICollectionView!

    let users = Stub.users

    override func viewDidLoad() {
        super.viewDidLoad()
        collectionView.automaticallyAdjustsScrollIndicatorInsets = false
        navigationController?.navigationBar.prefersLargeTitles = true
    }
}

// MARK: UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout

extension ViewController: UICollectionViewDataSource, UICollectionViewDelegate {
    func numberOfSections(in collectionView: UICollectionView) -> Int {
        return 1
    }

    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return self.users.count
    }

    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath) as! UserCollectionViewCell
        cell.setup(user: self.users[indexpath.row])
        return cell
    }
}

// MARK: UICollectionViewDelegateFlowLayout

extension ViewController: UICollectionViewDelegateFlowLayout {
    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
        let hight = view.frame.height
        let width = view.frame.width

        return CGSize(width: width * 0.3, height: hight * 0.185)
    }
}

Все функции работают, однако, когда я прокручиваю, верхняя часть представления коллекции прыгает. Это происходит только тогда, когда я устанавливаю prefersLargeTitles на true. Или, если у меня есть панель поиска на панели навигации.

enter image description here

Как вы исправите это, чтобы не прыгать? Если у вас есть какие-либо вопросы, пожалуйста, задавайте. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...