Iphone 将子视图添加到UITableView';父视图

Iphone 将子视图添加到UITableView';父视图,iphone,ios,ipad,uitableview,Iphone,Ios,Ipad,Uitableview,我正在尝试将子视图添加到UITableView的父视图中,以便在滚动UITableView时具有不移动的子视图。 当我将子视图添加到UITableView时,它会随着用户滚动操作上的表一起移动 到目前为止,我的设想是在UIDABBarController上有3个UINAvigationController。 每个都有一个UITableViewController。 我想在各个控制器的屏幕上添加一个子视图。但是,我不希望像这样将新的子视图添加到整个应用程序中: [[[UIApplication s

我正在尝试将子视图添加到UITableView的父视图中,以便在滚动UITableView时具有不移动的子视图。 当我将子视图添加到UITableView时,它会随着用户滚动操作上的表一起移动

到目前为止,我的设想是在UIDABBarController上有3个UINAvigationController。 每个都有一个UITableViewController。 我想在各个控制器的屏幕上添加一个子视图。但是,我不希望像这样将新的子视图添加到整个应用程序中:

[[[UIApplication sharedApplication] keyWindow] addSubview:newView];
当我将一个新的控制器推到堆栈中或弹出一个控制器时,我希望子视图随着它所在的UITableView一起移动和消失。保持这样一个事实,即当用户滚动UITableView时,新的子视图将位于其位置而不移动。 以便UITableView和新的子视图位于同一级别


谢谢将您的子视图添加到tableview中

实现委托方法scrollViewDidScroll。
在scrollViewDidScroll上,只需设置所需子视图的中心。

有几种方法:

首先,要将视图添加到用户滚动时保留的表视图中,如果您的表只有一个部分,则可以为该部分添加标题。例如,这会将一个纯蓝色的
UIView
作为标题添加到tableview中:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, self.view.bounds.size.width, 50)];
    view.backgroundColor = [UIColor blueColor];
    return view;
}

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    return 50;
}
第二,如果您有多个节,但是,该技巧不起作用,并且您希望使用
UIViewController
而不是
UITableViewController
,请将标题添加到该控制器视图的顶部,并将tableview添加到该视图的底部。您需要确保为tableview设置(a)一个
IBOutlet
(通常是一个名为
tableview
的属性,以避免混淆);和(b)指定视图控制器作为此tableview的数据源和委托

第三,如果希望此标题显示在应用程序中的每个场景上,另一种方法(在iOS5+应用程序中)是使用视图控制器包含,创建具有标题的容器视图,然后将应用程序的第一个场景添加为该视图容器的子视图。这并不难,但如果你是一名新的开发人员,我可能会劝阻你不要尝试。我已经做到了,而且效果很好,但不是所有人都能做到


第四,如果你的应用程序使用的是导航控制器,你可以自定义导航栏来呈现你的自定义外观。这完全取决于您试图用标题完成什么。

第三个选项最有帮助。尽管这很棘手。它以完美的方式完成工作。