如果您的表格总是至少有一行,只需滚动到表格的第一行,搜索栏就会自动隐藏。
let firstIndexPath = NSIndexPath(forRow: 0, inSection: 0)
self.tableView.selectRowAtIndexPath(firstIndexPath, 动画: false, scrollPosition: .Top)
如果你把上面的代码放在viewDidLoad上,它会抛出一个错误,因为 tableView 还没有加载,所以你必须把它放在viewDidAppear中,因为此时 tableView 已经加载了。
如果你把它放在viewDidAppear上,每次打开 tableView 时它都会滚动到顶部。
如果 tableView 保持打开状态,例如当它是 UITabBar 视图控制器或执行 segue 然后返回时,您可能不希望出现这种行为。如果您只想让它在初始加载时滚动到顶部,您可以创建一个变量来检查它是否是初始加载,以便它只滚动到顶部一次。
首先在视图控制器类中定义一个名为 isInitialLoad 的变量并将其设置为“true”:
var isInitialLoad = true
然后检查viewDidAppear上的 isInitialLoad 是否为 true ,如果为 true,则滚动到顶部并将 isInitialLoad 变量设置为 false:
if isInitialLoad {
let firstIndexPath = NSIndexPath(forRow: 0, inSection: 0)
self.tableView.selectRowAtIndexPath(firstIndexPath, animated: false, scrollPosition: .Top)
isInitialLoad = false
}