Я пытаюсь скрыть панель навигации, все, что я прокручиваю вверх, подобно тому, как это делает Твиттер на вкладке поиска. У меня есть collectionView вложенный внутри другого collectionView. Кажется, что hidesBarOnSwipe работает только для родительского collectionView. В ходе некоторых исследований я нашел быстрый способ решить проблему с прокруткой, но она кажется глючной и не такой гладкой, как в Twitter. Обратите внимание, что при первоначальной прокрутке whiteSpace появляется перед navBar. Любые советы и советы, чтобы сделать его лучше?
protocol FeedCellDelegate {
func didScroll(scrollView: UIScrollView)
}
class FeedCell: UICollectionViewCell, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout {
func scrollViewDidScroll(_ scrollView: UIScrollView) {
delegate?.didScroll(scrollView: scrollView)
}
}
class TwitterSearchViewController: UICollectionViewController, UICollectionViewDelegateFlowLayout, FeedCellDelegate {
func didScroll(scrollView: UIScrollView) {
var lastY: CGFloat = 0
let isScrollingUp = scrollView.contentOffset.y - lastY > 0
lastY = scrollView.contentOffset.y
UIView.animate(withDuration: 0.33, delay: 0, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: .curveEaseInOut, animations: {
self.navigationController?.setNavigationBarHidden(isScrollingUp, animated: true)
}, completion: nil)
}