swift - 从第一行拖动 UITableView 时显示 UISearchBar

标签 swift uitableview uisearchbar

我的搜索栏位于屏幕顶部,隐藏在导航栏下方。我想在用户平移时显示搜索栏,仅当 TableView 位于顶部(第 0 行)时。谁能解释一下?

我试过使用平移手势,但每次向下平移时都会显示搜索栏。

func showSearchBar(recognizer: UIPanGestureRecognizer) {
    if recognizer.state == .Changed {
        let translation = recognizer.translationInView(view)

        if searchBarConstraint.constant < searchBar.bounds.height {
            searchBarConstraint.constant += translation.y
        }
    }
}

最佳答案

由于 UITableViewUIScrollView 的子类,您可以使用它的 contentOffset 来确定表格 View 是否位于顶部:

let isAtTop = tableView.contentOffset.y == 0

当然,这只适用于您没有将默认 contentOffset 设置为另一点的情况。否则,您必须检查默认 contentOffsety 值。

关于swift - 从第一行拖动 UITableView 时显示 UISearchBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34289246/

相关文章:

ios - 布局问题 Xcode - 搜索栏自动移动

ios - 用NSObject过滤NSArray

ios - 仅更改空投部分底部的 UIActivityViewController 背景颜色

swift - 追加:00 to whatever is entered in the textfield

swift - 为什么 swift 不使用没有类型约束的通用返回参数来推断适当的重载函数?

ios - 从自定义 UITableView 获取 UItextFields 文本

ios - 如何在 UITableView 中显示两种类型的单元格而不冲突,但有以下要求?

ios - 基于indexPath.row的自定义表格单元格操作不起作用?

ios - UISearchController 中的搜索图标被截断

ios - 如何使用 Swift 将图像上传到 iOS 中的服务器?