当用户点击 sectionIndex 滚动条顶部的搜索图标时,如何在 Tableview 中显示搜索栏?

Posted

技术标签:

【中文标题】当用户点击 sectionIndex 滚动条顶部的搜索图标时,如何在 Tableview 中显示搜索栏?【英文标题】:How to Get Search Bar in Tableview to Appear When User Taps Search Icon at the top of sectionIndex scroll bar? 【发布时间】:2010-06-14 15:49:01 【问题描述】:

我有一个表格视图,右侧有一个索引滚动条,显示字母 A-Z,顶部有一个放大镜图标(search)。滚动条中的所有字母都会适当地将用户带到相应的部分,但放大镜除外,放大镜会将用户带到“A”并保持 searchBar 隐藏。

我只想让它转到表格的最顶部,以便在用户点击滚动条中的放大镜图标时显示搜索栏。我一直在寻找方法来做到这一点,但我找不到任何办法将 searchBar 添加到第一个 tableCell 和它自己的部分,除非这是唯一的方法,否则我不想这样做。

非常感谢!

【问题讨论】:

【参考方案1】:

试试这个post - 不久前我也想要同样的东西,希望对你有帮助。

简而言之,我把搜索栏放在表格视图的标题视图中,然后调整它的 contentOffset 以在触摸 search 时显示它。

实际上,我也能够模仿 Apple 应用程序的行为,所以当每次重新隐藏搜索栏时出现视图时,如果需要 - 我使用 UISearchDisplayController 为我处理 UISearcBar。这是我在 UITableViewController 类中执行此操作的代码:

- (void)viewWillAppear:(BOOL)animated

  [super viewWillAppear:animated];

  if (self.tableView.contentOffset.y <
      self.searchDisplayController.searchBar.frame.size.height)
    
      self.tableView.contentOffset =
        CGPointMake(0, self.searchDisplayController.searchBar.frame.size.height);
    

【讨论】:

感谢您上一篇文章的链接。我想知道您的答案中的“为搜索设置 sectionIndexSection -1”是什么意思? 我现在不在我的代码附近,但是如果你的部分索引是 search 加上 A 到 Z,你可以创建一个 NSArray 的索引来返回,所以 A 是 0,B 是 1 等等。只需将该数组中的第一项设为 -1(如果在顶部搜索),然后检查 UiTableView 委托方法以获取部分索引。

以上是关于当用户点击 sectionIndex 滚动条顶部的搜索图标时,如何在 Tableview 中显示搜索栏?的主要内容,如果未能解决你的问题,请参考以下文章

点击回到顶部的按钮

当内容长于高度时,可以让 jqueryUI 对话框滚动条从顶部开始吗?

JS实现回到Top(顶部)--JavaScript

js练习总结

怎样用js写返回顶部的滑动效果

jQuery当滚动条滚动时 一个元素到浏览器顶部的距离 随滚动条滚动时,到顶部的距离为本身的top+滚动条滚动