gpt4 book ai didi

iphone - View 隐藏在 UINavigationBar iOS 7 下方

转载 作者:IT王子 更新时间:2023-10-29 07:33:57 25 4
gpt4 key购买 nike

之前,我的项目使用的是 iOS 6.1。最近我切换到 iOS 7。因为,我知道很多变化,我更新了我的代码。但是我观察到一个奇怪的行为。我在每个屏幕上的 View 都隐藏在导航栏下方。重新定位 View 解决了 iOS7 的问题,但为旧的 iOS 版本带来了问题。

谁能解释一下,这是什么原因,为什么会这样??导致此问题的 iOS 7 中发生了什么变化??

任何帮助将不胜感激..

最佳答案

试试navigationBar.translucent = NO;,iOS7默认是YES

看一下 UINavigationBar 文档的这一部分也很好:

New behavior on iOS 7. Default is YES. You may force an opaque background by setting the property to NO. If the navigation bar has a custom background image, the default is inferred from the alpha values of the image—YES if it has any pixel with alpha < 1.0 If you send setTranslucent:YES to a bar with an opaque custom background image it will apply a system opacity less than 1.0 to the image. If you send setTranslucent:NO to a bar with a translucent custom background image it will provide an opaque background for the image using the bar's barTintColor if defined, or black for UIBarStyleBlack or white for UIBarStyleDefault if barTintColor is nil.

编辑:

如果您在具有较旧 iOS 版本的设备/模拟器中运行项目,则设置“navigationBar.translucent”值会导致异常。

所以你可以像这样添加一个版本检查:

float systemVersion = [[[UIDevice currentDevice] systemVersion] floatValue];
if (systemVersion >= 7.0)
{
navigationBar.translucent = NO;
}

另一种选择是设置:

vc.edgesForExtendedLayout = UIRectEdgeNone;

swift 3:

vc.edgesForExtendedLayout = []

关于iphone - View 隐藏在 UINavigationBar iOS 7 下方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18824994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com