我在TableViewController的标题中添加了一个搜索栏,我还在“sectionIndexTitlesForTableView”数组中添加了一个“{search}”。现在在右侧,我得到了字母表中的字母+顶部的搜索符号...滚动到我用过的字母部分(不是搜索字段):
- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index{
return index -1;
}
现在当我点击字母A时,它会滚动到A部分,依此类推。只有我不能让“搜索符号”滚动到tableView的标题中的搜索栏...
我该怎么做?
提前谢谢你......
答案 0 :(得分:10)
如果搜索栏位于tableView的最顶部,您可以执行类似 -
的操作- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index{
// as the search icon is at index 0, scroll to the top
if(index == 0)
[tableView scrollRectToVisible:CGRectMake(0, 0, searchBar.width, searchBar.height) animated:YES];
return index -1;
}
否则,如果它是没有任何行的部分,你可以这样做 -
CGRect searchBarRect = [tableView rectForSection:searchBarIndex];
[tableView scrollRectToVisible:searchBarRect animated:YES];
HTH,
阿克沙伊
答案 1 :(得分:0)
你在处理xib,如果是,那么移动UITableView顶部的搜索栏 例如
UIView // your main view
SearchBar
UITableView
好的,实际上你的问题对我来说并不清楚,现在你评论后我扩展了我的答案
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
{
// An array of strings that serve as the title of sections
}
此数据源方法只是要求数据源返回表格视图部分的标题。
我建议您refer
根据您的图片,我将再次坚持我之前基于可用性问题的答案。为什么你不能把搜索栏永远地放在最前面,它只会吃掉一两个结果集行(好的,我给出强烈的建议 - 如果你允许用户通过点击转到搜索栏在你的searchicon上并不容易(它非常小的)sectionIndex标题一般用户不使用,如果他们使用它们只是用于直接去特定部分。)
希望我的建议可能是你的好答案。
由于
答案 2 :(得分:0)
您可以使用UITableView的另一种方法执行此操作,如下所示:
- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index
{
if (//this condition is apply for A-Z//) {
}
else { //--- This is for your Search symbol---//
[tableView setContentOffset:CGPointMake(0, 0) animated:YES];
}
return (return your desire section value i.e. 1);
}