0

是否可以在父视图后面显示子视图?显然,如果视图是兄弟,你可以这样做;然而,我的视图是 ViewController 层次结构的一部分,据我所知,一个 ViewController 不能有多个视图。

换句话说,我有这个层次结构:

ViewController
-->ViewController's view
------>subview

基本上,我只希望“子视图”位于“ViewController 的视图”之后。这些都不是模态的——两种视图都一直存在。

上下文:“ViewController 的视图”是基于 OGL 的应用程序的主视图。我需要在主视图后面显示一个恒定的背景(用户可选择)。

4

2 回答 2

0

贾斯汀是对的,您的问题令人困惑,因为将视图 (1) 放在另一个视图 (2) 之上会掩盖原始视图 (1)。我想你的意思是问你是否可以在 viewController 的“主”视图“后面”或“下面”添加一个子视图。答案是否定的,您只能将子视图添加到“主”视图(视图控制器的视图属性)。

但是,只需将背景视图添加到主视图(视图控制器的视图属性),然后在顶部添加其他视图。

顺便说一句,viewController 旨在控制多个视图(主视图及其子视图)。

于 2012-08-14T14:27:30.250 回答
0

创建您的背景视图,可能是 UIImageView 或其他东西,然后将其添加为子视图并将其移到后面。

UIImageView *backgroundImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yourImage.png"]];
[backgroundImage setFrame:CGRectMake(0, 0, 320, 480)];
[self.view addSubview:backgroundImage];
[self.view sendSubviewToBack:backgroundImage];

您可以使用sendSubviewToBack:, bringSubviewToFront:, insertSubview:aboveSubview:, insertSubview:belowSubview:, insertSubview:atIndex:,exchangeSubviewAtIndex:withSubviewAtIndex:来组织子视图的层次结构(谁在谁之上)。该subviews属性返回NSArray所有子视图中的一个,以便它们出现在屏幕上。

于 2012-08-14T14:43:21.980 回答