导航栏透明度问题

时间:2014-01-24 14:21:00

标签: ios iphone objective-c uinavigationbar xcode5

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

enter image description here

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

self.edgesForExtendedLayout=UIRectEdgeNone

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

enter image description here

1 个答案:

答案 0 :(得分:3)

如果你的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;
}