发送视图

时间:2009-05-20 19:22:32

标签: iphone uiview uiviewcontroller

当我尝试向后面发送视图时,它会隐藏视图控制器中的一些按钮和标签。我发送到后面的视图是UIImageView。有没有人对可能出现的问题有所了解?


以下是我正在使用的代码:

UIImage *image = [UIImage imageNamed: @"background.jpg"];
UIImageView *backImage = [[UIImageView alloc] initWithImage: image];
[self.view addSubview: backImage];
[self.view sendSubviewToBack: backImage];

然后,当我向self.view添加控件时,它们并不总是显示


我设法通过将我的代码从init移动到loadView来实现它。我不明白为什么那应该有所作为,但是嘿..它有效!

3 个答案:

答案 0 :(得分:17)

如果您使用UIView的{​​{1}}或类似消息,则可能会在sendSubviewToBack:下的层次结构中插入按钮。当视图在层次结构中移动时,其所有子视图都随之移动。

要解决此问题,您需要将控件添加为最初添加UIImageView的同一视图的子视图(可能是UIWindow)。

如果没有看到你的代码,就很难更精确。

答案 1 :(得分:1)

通过不必以编程方式添加它并调整视图,更容易在界面构建器中对每个视图进行分层。确保图像视图,如果将其设置为背景,请确保它是第一个列出的。

答案 2 :(得分:0)

同意。不太确定你的意思是“发送到后面”,但这是一个猜测...

如果您要调整主视图中的分层,请确保您没有发送具有多个子视图的“向后”视图(更改它的图层)......否则它们都会转到后面(他们的分层会同时改变。

如果这完全不是你的意思,请告诉我,我会删除这个答案。