23

有没有办法让背景图像在导航控制器的所有视图中保持不变?目前我在每个视图的viewDidLoad方法中加载相同的背景,但这显示了在视图之间导航时背景图像的移动。我宁愿只是背景“幻灯片”开/关屏幕前的视图内容但背景保持静止。这是我当前的背景图片加载代码:

UIImageView *background = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
background.image = [UIImage imageNamed:@"InfoBackground.png"];
[self.view addSubview:background];
[self.view sendSubviewToBack:background];
[background release];

谢谢!

4

3 回答 3

29

嗯,也许如果您查看文档(向下滚动到图 2),您将了解您正在处理的内容。因为您正在为每个被推送到 UINavigationController 的视图控制器设置背景图像,所以您将获得该动画。您需要做的是将背景图像设置到导航控制器本身。

我相信myNavController.view insertSubview:myImageView atIndex:0应该工作。如果您的图像需要准确地填充在内容视图后面,您可以根据导航栏和工具栏的坐标和/或高度设置框架坐标,可以通过导航控制器的属性访问。如果没有,只需将框架设置为超级视图的边界。

让我知道事情的后续。

编辑:哦,请注意,您需要确保每个视图控制器都具有透明背景。

于 2012-10-27T03:13:38.353 回答
1

如果你想要静态背景图像,那么只有一种方法,但我不知道这是否可能,如果我们将图像放在窗口中并使导航控制器透明,那么无论你做什么它都保持静态。因为我们在推送或弹出时不会更改窗口。

我只是建议尝试这种方式,我没有尝试过这样的方式。

于 2012-10-27T11:01:17.233 回答
1

我认为更好的主意是将背景图像放在窗口上并将所有视图(所有视图控制器的视图)的背景颜色设置为清除颜色[UIColor clearColor]

于 2012-10-27T03:48:27.860 回答