我想在我的UIView
类和NavigationBar下的表视图中添加tableViewController
。如果我这样添加:
[self.view addSubview:self.manualView];
它位于UITableView上方(实际上我想让它们在同一个z-index上)。我还想在用户按下某个按钮时以编程方式删除UIView。
答案 0 :(得分:5)
UITableViewController's
视图是UITableView
,因此添加子视图可能不是您正在寻找的内容。我认为最好的解决方案是使用UIViewController
代替。如果你给它一个覆盖整个(UITableViewController
)视图的tableView,它的行为就像UIView
。
然后使用addSubview
(以及@Literphor建议的removeSubview
)的代码就可以了。
只要在添加表格视图后添加视图,堆叠就会自行处理。
答案 1 :(得分:2)
有两种方法可以解决这个问题。 天真(创建视图并将其添加到子视图):
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
view.backgroundColor = [UIColor blackColor];
[self.view addSubview:view];
这引入了一系列与布局布局和空间冲突相关的问题。
更好的解决方案: 通过以下方式返回表格相应部分的页眉视图或页脚视图:
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
此方法是UITableViewDelegate协议的一部分,UITableViewController默认符合该协议。
答案 2 :(得分:0)
您可以使用[self.view removeSubview:self.manualView];
来响应用户按下按钮。并且您无法使用相同的Z-index获得两个视图,但您可以通过参考Apple的管理视图层次结构部分来更改视图的深度UIView Documentation