当我离开 iOS6 时,我正在使用 Xcode 4.6 开发 UISplitView 应用程序,我设计了:
现在我迁移到新的 Xcode5,现在我有了这个设计:
UINavigationBar 与我的 UISearchBar 完全重叠...
Leo Natan 告诉我有关使用 iOS 6/7 Deltas 的信息,但由于我正在以编程方式创建和添加我的 UISplitViewControllers,
这可能不起作用我需要以编程方式设置 iOS 6/7,但我不知道如何,任何帮助我将不胜感激
当我离开 iOS6 时,我正在使用 Xcode 4.6 开发 UISplitView 应用程序,我设计了:
现在我迁移到新的 Xcode5,现在我有了这个设计:
UINavigationBar 与我的 UISearchBar 完全重叠...
Leo Natan 告诉我有关使用 iOS 6/7 Deltas 的信息,但由于我正在以编程方式创建和添加我的 UISplitViewControllers,
这可能不起作用我需要以编程方式设置 iOS 6/7,但我不知道如何,任何帮助我将不胜感激
在 iOS 7 中,现在有扩展边缘,这就是导航栏与搜索栏重叠的原因。你可以设置self.edgesForExtendedLayout = UIRectEdgeNone;
这是 UIVewControlelr 属性。您还可以根据 iOS 的版本进行检查,您可以根据设备中当前的 iOS 版本进行操作。
NSString *version = [[UIDevice currentDevice] systemVersion];
int ver = [version intValue];
if (ver < 7){
//iOS 6 work
}
else{
//iOS 7 related work
}
此外,您可以使用 NSFoundationVersionNumber
if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1) {
// > iOS7
} else {
// <= iOS6
}
您可以创建一个 makro 来解决这个问题。它对我有用。
#define iOS7Delta (([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0 ) ? 20 : 0 )
如果视图嵌入在 UINavigationController 中 - 只需取消选中根导航栏的“半透明”即可。
在情节提要中,选择 Navigation Controller Scene,然后选择 Navigation Bar,然后在 Attributes Inspector (Utilities - 4 tab) 中取消选中“Translucent”