如前所述,您可能希望将搜索栏放在 的tableHeaderView
属性中UITableView
,这会将其放在表格的顶部,而无需进行手动定位。不过,我不确定这如何与索引一起使用。
至于共享 a UISearchBar
,我想不出一个很好的理由来代替每个表视图都有一个 - 内存差异应该可以忽略不计,并且设置和取消设置委托和诸如此类的东西可能是一个严重的麻烦。您想共享搜索栏是否有特殊原因?如果你想要持久化,你可以将搜索栏文本保存viewWillDisappear
在viewWillAppear
.
如果您真的想将搜索栏放在第一个单元格中,而不是表格标题中,您可以执行以下操作:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = //etc, normal cell creation
if (indexPath.section == 0 && indexPath.row == 0) {
[cell addSubview:self.searchBar];
}
return cell;
}
但是在表格标题中放置搜索栏更为常见,并且更易于管理。