2009-05-20 75 views
21

当我尝试发送视图到后面时,它隐藏了我的视图控制器中的一些按钮和标签。我发送到后面的视图是一个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来实现。我不明白为什么这应该有所作为,但嘿..它的作品!

+0

你可以发布一些示例代码? – pgb 2009-05-20 19:29:24

回答

17

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

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

没有看到您的代码,就很难做到更精确。

0

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

如果您正在调整主视图中的分层,请确保您没有发送视图“到后面”(改变它的图层),其中有子视图的数量......否则他们都会同时进入后面(他们的分层会改变)。

如果这完全不是你的意思,只是让我知道,我会删除这个答案。

1

通过不需要通过编程方式添加它并调整视图,就可以更轻松地在界面构建器中对每个图层进行分层。确保图像视图,如果这被设置为背景,确保它是第一个被列出的。