Iphone 跨4个独立的UITableView持久化单个UISearchBar实例

Iphone 跨4个独立的UITableView持久化单个UISearchBar实例,iphone,cocoa-touch,uitableview,uisearchbar,Iphone,Cocoa Touch,Uitableview,Uisearchbar,我正在开发一款iPhone应用程序,它需要4个独立的UITableView对象,共享对上述UITableView对象第一部分和第一行中一个UISearchBar对象的访问权限 我尝试将UITableView的帧偏移44像素,然后将搜索栏添加为我的UIViewController的视图的子视图。这是可行的,但我不能使用表索引向上滚动到搜索栏,因为它不是tableview中的单元格。我需要在表视图中设置搜索栏 我的目标是在多个TableView的第一部分中使用相同的UISearchBar 非常感谢。

我正在开发一款iPhone应用程序,它需要4个独立的
UITableView
对象,共享对上述
UITableView
对象第一部分和第一行中一个
UISearchBar
对象的访问权限

我尝试将
UITableView
的帧偏移44像素,然后将搜索栏添加为我的
UIViewController
视图的子视图。这是可行的,但我不能使用表索引向上滚动到搜索栏,因为它不是tableview中的单元格。我需要在表视图中设置搜索栏

我的目标是在多个TableView的第一部分中使用相同的
UISearchBar


非常感谢。

在切换每个tableView时,只需添加UISearchBar作为每个tableView的标题视图即可

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

当然,我完全有可能误解了你的意图。如果是这种情况,请详细说明。

您可以在切换每个tableView时简单地添加UISearchBar作为每个tableView的标题视图

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

当然,我完全有可能误解了你的意图。如果是这种情况,请详细说明。

如前所述,您可能希望将搜索栏放在
UITableView
tableHeaderView
属性中,这样就可以将其放在表的顶部,而无需手动定位。不过,我不确定这对索引是如何起作用的

至于共享一个
UISearchBar
,我想不出一个好的理由来代替为每个表视图共享一个——内存差异应该可以忽略不计,设置和取消设置委托等等可能是一个严重的麻烦。你想共享搜索栏有什么特别的原因吗?如果需要持久性,可以将搜索栏文本保存在
viewwilldiscover
中,并在
viewwilldisease
中进行设置

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

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

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

如前所述,您可能希望将搜索栏放在
UITableView
tableHeaderView
属性中,这样就可以将其放在表格顶部,而无需手动定位。不过,我不确定这对索引是如何起作用的

至于共享一个
UISearchBar
,我想不出一个好的理由来代替为每个表视图共享一个——内存差异应该可以忽略不计,设置和取消设置委托等等可能是一个严重的麻烦。你想共享搜索栏有什么特别的原因吗?如果需要持久性,可以将搜索栏文本保存在
viewwilldiscover
中,并在
viewwilldisease
中进行设置

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

- (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;
}
但在表格标题中放置搜索栏更为常见,也更易于管理