我试图模仿类似于 iPod 应用程序的艺术家表视图的行为 - 它是一个分段表视图,右侧有一个部分索引,顶部有一个搜索栏,但在显示视图时最初是隐藏的。
我使用的是sdk 3.1.2和IB,所以简单地拖了一个UISearchDisplayController
到我的笔尖 - 它将所有内容连接起来以供搜索。问题开始是因为我添加了UISearchBar
到第一部分UITableView
,因为如果我理解正确的话,我必须这样做,这样我就可以通过直接触摸部分索引中的搜索图标跳转到搜索栏?当表格视图出现时,我看到搜索栏,但它已经调整大小,现在顶部的部分索引后面有一个白色块。它不需要的颜色UISearchBar
有趣的是,它的环绕与 Interface Builder 中显示的不同。
我发现了一个添加小导航栏和UISearchBar
in a UIView
,然后将其添加到表视图单元格中。这是可行的,但导航栏背景的颜色是您通常期望的颜色(灰色),而不是如上所述的不同颜色。更有趣的是,如果我点击搜索栏开始搜索,然后点击取消,一切都固定了。搜索栏时整个表格视图单元格的背景是相同的吗?
回答了我自己的问题,但可能对其他初学者有帮助:
- 视图加载时将搜索栏放在表视图标题中,将 contentOffset 向下滚动此搜索栏的高度(通常为 44 像素),但易于动态检查
- 在部分索引中添加带有“{search}”的搜索图标
- 将搜索的sectionIndexSection设置为-1
- 处理部分索引触摸时,使用“特殊”索引值进行搜索“-1”(将 contentOffset 滚动回 (0, 0)
Update:使用字符串常量UITableViewIndexSearch http://developer.apple.com/library/ios/#documentation/uikit/reference/UITableView_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006943-CH3-SW49字符串代替未记录的字符串“{search}” - 即在实现时将其作为数组项之一返回:
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
in UITableView数据源 http://developer.apple.com/library/ios/#documentation/uikit/reference/UITableViewDataSource_Protocol/Reference/Reference.html#//apple_ref/occ/intfm/UITableViewDataSource/sectionIndexTitlesForTableView:.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)