我试图在静态单元格表视图上实现搜索栏。
我已经将UITableview控制器子类化了,在.h中声明了Search Bar and Search Display Controller
并设置了<UISearchDisplayDelegate>
现在我不确定我的.m文件中接下来要做什么,我看过的教程都是指原型单元格,我似乎无法根据我的要求调整代码。我还看了一下Apples示例代码
我的最终结果是从搜索栏搜索页面上的单元格。我的搜索栏会显示行,但不会根据搜索对它们进行排序。此外,当返回到表格视图时,它似乎以图形方式损坏。
使用Xcode 4.5
答案 0 :(得分:0)
在这个问题上有很多问题。以下是一些提示:
将搜索栏添加到表格标题
self.tableView.tableHeaderView = self.searchBar;
默认情况下隐藏此功能,向下滚动时会显示
[self.tableView setContentOffset:CGPointMake(0, 44)];
至于搜索/过滤表格。您需要的是指向数据数组的表数据源方法。您还需要保留完整数据列表的另一个数组。在搜索时,调用这样的方法:
- (void) performSearchWithText:(NSString *)searchText {
if ([searchText length] > 0) {
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"cell contains[cd] %@", searchText];
NSArray *filteredArray = [self.allData filteredArrayUsingPredicate:predicate];
self.tableData = [NSArray arrayWithArray:filteredArray];
[self.tableView reloadData];
} else {
self.tableData = self.allData;
[self.tableView reloadData];
}
}