在现有视图之上添加新视图

时间:2014-02-18 16:00:14

标签: ios user-interface

我想在self.view之上添加一个名为anotherView的视图。但我不希望anotherView成为子视图。这可能吗?

我希望另一个视图位于页面顶部,并相应地向下推送self.view的内容(无需更改y或高度值。

我有以下内容并且不起作用:

UIView *anotherView = [[UIView alloc] initWithFrame: CGRectMake(0, 0, self.view.frame.size.width, 80)];
anotherView.backgroundColor = [UIColor yellowColor];

[self.view insertSubview:anotherView aboveSubview:self.view];

该框仅位于现有视图的顶部。

2 个答案:

答案 0 :(得分:0)

任何可见视图都是其他视图或窗口的子视图。

但你可以添加另一个视图

self.view.superview

甚至

self.view.window

或创建新的UIWindow对象并将子视图添加到此窗口

答案 1 :(得分:0)

您是否尝试过以模态方式呈现另一个视图?通过这种方式,您可以使其显示在作为完全新视图控制器的所有内容之上。例如:

[self presentModalViewController:anotherView animated:YES];

当然,假设anotherView是UIViewController的子类,并且有自己的View属性。因为如果anotherView只是UIView的子类,那么你不能在不是当前View Controller的子视图的情况下呈现它。

编辑: 哦,是的,你可以将nil传递给完成块:

[self presentViewController:anotherView animated:YES completion:nil];