0

我正在使用一个 iPhone 应用程序,该应用程序需要 4 个单独的UITableView对象共享UISearchBar对上述UITableView对象的第一部分和第一行中的一个的访问权限。

我试图将UITableView's 的框架偏移 44 个像素,然后将搜索栏添加为我UIViewController的 's的子视图view。那行得通,但我不能使用表格索引向上滚动到搜索栏,因为它不是表格视图中的单元格。我需要在表格视图本身中有搜索栏。

我的目标是UISearchBar在多个表格视图的第一部分中具有相同的内容。

非常感谢。

4

2 回答 2

3

如前所述,您可能希望将搜索栏放在 的tableHeaderView属性中UITableView,这会将其放在表格的顶部,而无需进行手动定位。不过,我不确定这如何与索引一起使用。

至于共享 a UISearchBar,我想不出一个很好的理由来代替每个表视图都有一个 - 内存差异应该可以忽略不计,并且设置和取消设置委托和诸如此类的东西可能是一个严重的麻烦。您想共享搜索栏是否有特殊原因?如果你想要持久化,你可以将搜索栏文本保存viewWillDisappearviewWillAppear.

如果您真的想将搜索栏放在第一个单元格中,而不是表格标题中,您可以执行以下操作:

- (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;
}

但是在表格标题中放置搜索栏更为常见,并且更易于管理。

于 2010-04-05T00:52:53.277 回答
1

当您在它们之间切换时,您可以简单地将 UISearchBar 添加为每个 tableView 的标题视图。

[oldTableView setTableHeaderView:nil];
[newTableView setTableHeaderView:searchBar];

当然,我完全有可能误解了您要做什么。如果是这样,请详细说明。

于 2010-04-04T06:17:41.890 回答