Swift: скрыть панель навигации внутри вложенного CollectionView - PullRequest
0 голосов
/ 20 октября 2019

Я пытаюсь скрыть панель навигации, все, что я прокручиваю вверх, подобно тому, как это делает Твиттер на вкладке поиска. У меня есть collectionView вложенный внутри другого collectionView. Кажется, что hidesBarOnSwipe работает только для родительского collectionView. В ходе некоторых исследований я нашел быстрый способ решить проблему с прокруткой, но она кажется глючной и не такой гладкой, как в Twitter. Обратите внимание, что при первоначальной прокрутке whiteSpace появляется перед navBar. Любые советы и советы, чтобы сделать его лучше?

enter image description here enter image description here

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)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...