ios - 导航栏透明度问题

标签 ios iphone objective-c uinavigationbar xcode5

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

enter image description here

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

self.edgesForExtendedLayout=UIRectEdgeNone

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

enter image description here

最佳答案

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

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

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

关于ios - 导航栏透明度问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21334991/

相关文章:

ios - 如何将安全区域添加到 View 高度?

ios - 使用 Xamarin 的文件应用程序在 iOS 上共享文件

iphone - 如何使用默认请求地址编写UIWebView,例如(192.168.1.1)

objective-c - UISplitViewController - 推送模态视图

objective-c - 使用 Cocoa Touch 和 Objective C 创建选择菜单

iphone - scrollToRowAtIndexPath 在设置我的 tableview 之前检查索引路径

android - 适用于 iOS 和 Android 应用程序的服务器端数据库

iphone - 文本编辑后更新时 UITableView 崩溃

iphone - 委托(delegate)——他们到底是什么?

iphone - 如何判断一个3D旋转的物体离屏幕边缘有多远