UITableView 中的 UISearchBar
我试图模仿类似于 iPod 应用程序的艺术家表视图的行为 - 它是一个分段表视图,右侧有一个部分索引,顶部有一个搜索栏,但在显示视图时最初是隐藏的。
我使用的是 sdk 3.1.2 和 IB,因此只需将 UISearchDisplayController
拖到我的 NIB 中 - 它会连接所有内容以进行搜索。问题开始是因为我将 UISearchBar
添加到 UITableView
的第一部分,因为如果我理解正确的话,我必须这样做,这样我就可以跳转到搜索栏直接触摸部分索引中的搜索图标?当表格视图出现时,我看到搜索栏,但它已经调整大小,现在顶部的部分索引后面有一个白色块。它不采用 UISearchBar 周围的颜色,有趣的是,它与 Interface Builder 中显示的颜色不同。
我发现了一个提示,可以在 UIView
中添加一个小导航栏和一个 UISearchBar
,然后将其添加到表格视图单元格中。这是可行的,但导航栏背景的颜色是您通常期望的颜色(灰色),而不是如上所述的不同颜色。更有趣的是,如果我点击搜索栏开始搜索,然后点击取消,一切都固定了。搜索栏时整个表格视图单元格的背景是相同的吗?
I'm trying to mimic the behaviour of a table view similar to the iPod app for Artists - it's a sectioned table view with a section index on the right, with a search bar at the top, but initially hidden when view shown.
I am using sdk 3.1.2 and IB, so simply dragged a UISearchDisplayController
into my NIB - it wires everything up for searching. The problem starts because I'm adding the UISearchBar
to the first section of the UITableView
, because if I understand correctly I must do this so I can jump to the search bar by touching the search icon in the section index directly? When the table view appears I see the search bar but it has resized and I now have a white block behind the section index at the top. It doesn't take the color of the UISearchBar
's surround which interestingly is different to that shown in Interface Builder.
I found a tip to add a small navigation bar and a UISearchBar
in a UIView
, then add this to the table view cell. This works, but the color of the navigation bar's background is what you'd expect normally (gray), not the different color as noted above. More interesting, if I tap the search bar to start a search, then tap Cancel, all is fixed. The background along the whole tableview cell when the search bar is, is the same?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
回答了我自己的问题,但可能对其他初学者有帮助:
更新:使用字符串常量
UITableViewIndexSearch
字符串代替未记录的字符串“{search}” - 即在以下情况下将其作为数组项之一返回实现:在 UITableViewDataSource。
Answered my own question, but might be helpful to other beginners:
Update: use the string constant
UITableViewIndexSearch
string in place of the undocumented string "{search}" - i.e. return it as one of the array items when implementing:in UITableViewDataSource.
将搜索控制器放在tableView的开头
并尝试这个:
Put the search Controller in the beginning of the tableView
and try this: