导航栏透明度问题

Posted

技术标签:

【中文标题】导航栏透明度问题【英文标题】:Navigationbar Transparency issue 【发布时间】:2014-01-24 14:20:59 【问题描述】:

最初我从 ios6 开发 xcode 项目..现在我需要使其与 IOS7 兼容..当我这样做时,导航栏出现了一些问题..当我在 IOS 7 上运行时,当前视图覆盖在导航栏上您可以在第一张图片中看到。

为了解决这个问题,我添加了以下代码

self.edgesForExtendedLayout=UIRectEdgeNone

它解决了我的问题..但是当我这样做时,我遇到了新问题..我失去了导航栏的透明度..你可以在下一张图片中看到。

【问题讨论】:

将根视图控制器的背景颜色设置为白色? 【参考方案1】:

如果您的 viewController 有 xib 文件,只需转到大小检查器并在“iOS 6/7 Deltas”部分中设置 delta-y = 44(导航栏的高度)看法。 并确保在“查看为:”字段中的文件检查器中选择了 iOS 7.0 及更高版本 选项(如果您使用 XCode 5,则为默认选项)。

UPD:也有另一种获得成功的方法,但这太棘手了,我认为第一种更好。您可以添加此代码:

if ([[[UIDevice currentDevice] systemVersion] floatValue] < 7.0) 
    CGRect rect = aView.frame;
    rect.origin.y += 44;
    aView.frame = rect;

【讨论】:

我正在使用 Storyboard 兄弟...它不适用于带有表格视图控制器的故事板

以上是关于导航栏透明度问题的主要内容,如果未能解决你的问题,请参考以下文章

pushViewController 时禁用导航栏透明度

在 ios 7 中制作透明导航栏和透明标签栏。

想要对导航栏显示透明

可靠获取状态栏高度解决KitKat半透明导航问题

可靠获取状态栏高度解决KitKat半透明导航问题

iOS 13 导航栏问题 - 部分导航栏变得透明