iOS RxSwift向上滚动时显示SearchController,NavigationBar,向下滚动时隐藏

时间:2018-09-27 13:39:20

标签: uicollectionview rx-swift uisearchcontroller

我正在研究一个iOS项目,该项目使用UIViewController包含一个UICollectionView和一个SearchViewController。我的目标是使用RxSwift在用户向上滚动时显示SearchViewControllerNavigationBar,在向下滚动时隐藏它们(向下滚动时全屏显示)。我怎样才能实现这个目标?

我已经设置了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)

0 个答案:

没有答案
相关问题