Я работаю над проектом iOS, в котором UIViewController
содержит UICollectionView
с SearchViewController
.Моя цель - использовать RxSwift, чтобы показать SearchViewController
и NavigationBar
при прокрутке пользователя вверх и скрыть их при прокрутке вниз (полноэкранный режим при прокрутке вниз).Как мне достичь этой цели?
Я настроил свой SearchViewController
fileprivate func setUpSearchViewController() {
searchController.dimsBackgroundDuringPresentation = false
searchController.obscuresBackgroundDuringPresentation = false
searchController.searchBar.searchBarStyle = .minimal
navigationItem.searchController = searchController
UIView.setAnimationsEnabled(true)
if #available(iOS 11, *) {
navigationItem.searchController = searchController
navigationItem.hidesSearchBarWhenScrolling = false
} else {
self.navigationItem.titleView = searchController.searchBar
searchController.searchBar.sizeToFit() // needed for iOS 8
}
}
, и я думаю, что мы должны изменить это observable
для достижения результата:
collectionView.rx.didScroll.subscribe {_ in
if (self.collectionView.panGestureRecognizer.translation(in: self.collectionView.superview).y > 0) {
// scroll up
} else {
//scroll down
}
}.disposed(by:disposeBag)