ios - iPhone:默认隐藏 UITableView 搜索栏

标签 ios iphone uitableview user-interface

我使用 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/

相关文章:

iphone - 在tableviewcontroller的编辑模式下重命名 "Delete"按钮

iPhone UIPickerview reloadAllComponents 不起作用

ios - Xcode 12.5 与 iOS 14.5.1 设备获取 xcode 无法在设备上启动远程服务 com.apple.debugserver

iphone - iPhone 上导航栏按钮的默认颜色是什么?

ios - UIImageView 不继续

objective-c - 仅显示 UITableView 中的前 10 个单元格

iOS - 遍历单元格并检索数据

ios - 发布申请/x-www-form-urlencoded Alamofire

iphone - 使用 NSCopy 复制包含指针的自定义对象?

iphone - 峰值滤波器有咔哒声和爆裂声