为整个iOS应用设置背景图片

我正在尝试按照以下建议为整个应用设置背景图像: set background image for entire iPhone / iPad app

但是在iOS 7中(不了解其他版本)它根本不能正常工作.
我创建了一个简单的存储库,以便您可以更好地了解正在发生的事情.
转换中有一些故障.

当您在第一个视图中点击一行时,第二个视图将被推入导航控制器,但是有一个奇怪的效果.似乎行透明度起到了这个作用.
一个问题是,当你回到前一个视图控制器时,会从导航堆栈中弹出一个视图控制器的微妙阴影.正如我之前所说,你可以通过运行简单的Xcode项目得到我的意思.

回购:https://github.com/socksz/FixedBackgroundImage

有任何想法吗?我已经尝试为每个控制器设置背景图像,但这不是我想要的,因为这样图像“重叠”了前一个背景图像,并不是所需的效果.

希望我解释得很好.

编辑1

似乎问题出现是因为iOS 7管理两个视图控制器之间的转换的方式.在你进入第二个视图控制器并尝试使用滑动手势转向上一个控制器时,您可以看到,当您开始手势时,第一个控制器出现在第二个控制器(您正在看到的控制器)下方,并且,因为UITableViewCells有透明背景,你已经看到第一个控制器.其实我担心没有解决方案.遗憾的是,如果不在每个控制器上设置背景图像,我就无法获得固定的背景图像.

解决方法

我在iPhone应用程序中要求根据用户的偏好设置页面的背景图像.我处理它的方法添加一个带有背景图像的UIImageView作为视图的子视图,就像这样 –
UIImageView *bgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"background-image"]];
bgImageView.frame = self.view.bounds;
[self.view addSubview:bgImageView];
[self.view sendSubviewToBack:bgImageView];

我克隆了你的Github存储库,并在两个视图控制器的viewDidLoad中添加了上面的代码片段.我还在同一方法添加了以下代码行 –

self.tableView.opaque = NO;

我在didFinishLaunchingWithOptions中注释掉了你设置背景颜色的代码.通过这些更改,在视图控制器之间导航时的工件消失了.我测试了iPhone Retina(3.5英寸)以及iPhone Retina(4英寸)模拟器.

在故事板中导航到ViewController和从ViewController导航时看到工件的原因需要进行一些调查.我的建议可能适用于您的要求,也可能不适用,但是,您可以尝试将其作为解决方案.

附:该方法需要一些调整来自动布局约束.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...