用户在tableview中向下滚动时隐藏视图

时间:2017-01-17 20:31:57

标签: ios swift

我有一个过滤条,它是一个UIView以及我控制器中的tableView,如下所示:

override func viewWillLayoutSubviews() {
    sortSalonsByDistanceAndReload()
}    

func setupViews() {
    view.addSubview(filterBar)
    view.addSubview(tableView)

    filterBar.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
    filterBar.rightAnchor.constraint(equalTo: view.rightAnchor).isActive = true
    filterBar.topAnchor.constraint(equalTo: view.topAnchor).isActive = true

    filterBarHeightLC = filterBar.heightAnchor.constraint(equalToConstant: 44)
    filterBarHeightLC?.isActive = true

    tableView.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
    tableView.rightAnchor.constraint(equalTo: view.rightAnchor).isActive = true
    tableView.topAnchor.constraint(equalTo: filterBar.bottomAnchor).isActive = true
    tableView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true

}

当用户向下滚动tableView时,我想让filterBar消失,然后在用户向上滚动时重新出现

2 个答案:

答案 0 :(得分:0)

您可以使用搜索控制器。看看How to implement UISearchController in UITableView - SWIFT

如果它不适合您,您可以添加为标题视图的一部分或一部分

答案 1 :(得分:0)

delegate的{​​{1}}应实施tableView方法UIScrollViewDelegate并查询scrollViewDidScroll:(您的tableView)上的contentOffset.y属性。然后,它取决于您希望条形显示的时间:仅在顶部,或者每当用户在tableView内向上滚动时。您可以将scrollView差异与contentOffset.y的顶部约束常量(范围从-44到0)同步。最好插入tableView并更新插件(从0到44)。 如果您的filterBar可以使用filterBar中的导航栏实现,您可能会UINavigationController,但我不知道您的视图控制器设置。