我使用 Interface Builder 创建了一个 TableView ,我向其中添加了库的搜索栏和搜索显示 Controller 以添加搜索功能。但是,IB 对其进行了设置,以便在首次显示 View 时可以在屏幕顶部看到该栏。
我想知道如何在默认情况下隐藏搜索栏,但仍然可以在表格 View 中滚动(请参阅 Apple 的邮件应用程序示例)。我尝试在 viewDidLoad
中调用 scrollRectToVisible:animated:
来向下滚动表格 View ,但无济于事。默认隐藏搜索栏的首选方式是什么?
最佳答案
首先确保将 UISearchBar 添加到 UITableView 的 tableHeaderView,这样它就可以随着表格的内容滚动,而不是固定在 View 的顶部。
搜索栏在表格 View 中不算作一行,因此如果您将表格 View 的顶部滚动到第一行,它会“隐藏”搜索栏:
[yourTableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:NO];
或者在 Swift 中:
yourTableView.scrollToRowAtIndexPath(NSIndexPath(forRow: 0, inSection: 0), atScrollPosition: UITableViewScrollPosition.Top, animated: false)
确保在 TableView 包含数据之前不要滚动它(如果给定的 indexPath 未指向有效行(即如果 TableView 为空),scrollToRowAtIndexPath
将引发异常)。
关于ios - iPhone:默认隐藏 UITableView 搜索栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1081381/