我正在尝试按照以下建议为整个应用设置背景图片:为整个iPhone/iPad应用设置背景图片
但是在iOS 7中(不了解其他版本)它根本不能正常工作.我创建了一个简单的存储库,以便您可以更好地了解正在发生的事情.转换中有一些故障.
当您在第一个视图中点击一行时,第二个视图将被推入导航控制器,但是有一个奇怪的效果.似乎行透明度起到了这个作用.另一个问题是,当你回到前一个视图控制器时,会从导航堆栈中弹出一个视图控制器的微妙阴影.正如我之前所说,你可以通过运行简单的Xcode项目得到我的意思.
回复:https://github.com/socksz/FixedBackgroundImage
有任何想法吗?我已经尝试设置每个控制器的背景图像,但它不是我想要的,因为那样的图像"重叠"以前的背景图片,这不是预期的效果.
希望我解释得很好.
编辑1
似乎问题出现是因为iOS 7管理两个视图控制器之间的转换的方式.你在第二个视图控制器中并尝试使用滑动手势转向上一个控制器,你可以看到,当你开始手势时,第一个控制器出现在第二个控制器(你正在看到的控制器)下面,并且,因为UITableViewCell
s有透明背景,你已经看到第一个控制器.其实我担心没有解决方案.遗憾的是,如果不在每个控制器上设置背景图像,我就无法获得固定的背景图像.
我在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
故事板和从故事板导航时看到伪影的原因需要进行一些调查.我的建议可能适用于您的要求,也可能不适用,但是,您可以尝试将其作为解决方案.
PS该方法需要一些调整来自动布局约束.