早些时候,我的项目使用的是 iOS 6.1。最近我已经切换到 iOS 7。对于我知道的很多更改,我更新了我的代码。但是我观察到了一个奇怪的行为。我在每个屏幕上的视图都隐藏在导航栏下方。重新定位视图解决了 iOS7 的问题,但为旧版 iOS 版本带来了问题。
谁能解释一下,原因是什么以及为什么会发生? iOS 7 中发生了什么变化导致了这个问题?
任何帮助,将不胜感激..
Try navigationBar.translucent = NO;
, It is YES
iOS7 中默认。
看看这部分也很好UINavigationBar
文档:
iOS 7 上的新行为。默认值为 YES。您可以强制不透明
通过将该属性设置为 NO 来设置背景。如果导航栏有
自定义背景图像,默认值是从 alpha 值推断出来的
图像的 - 是,如果它有任何 alpha
Edit:
如果您在具有较旧 iOS 版本的设备/模拟器中运行项目,设置“navigationBar.translucent”值会导致异常。
所以你可以添加一个版本检查,如下所示:
float systemVersion = [[[UIDevice currentDevice] systemVersion] floatValue];
if (systemVersion >= 7.0)
{
navigationBar.translucent = NO;
}
另一种选择是设置:
vc.edgesForExtendedLayout = UIRectEdgeNone;
Swift 3:
vc.edgesForExtendedLayout = []
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)