Я создал тестовое приложение, увидев это в одном из моих собственных приложений. У меня есть представление коллекции, встроенное в контроллер навигации.
Все это связано с классом 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
. Или, если у меня есть панель поиска на панели навигации.
Как вы исправите это, чтобы не прыгать? Если у вас есть какие-либо вопросы, пожалуйста, задавайте. Спасибо.