13

当我离开 iOS6 时,我正在使用 Xcode 4.6 开发 UISplitView 应用程序,我设计了:

在此处输入图像描述

现在我迁移到新的 Xcode5,现在我有了这个设计:

在此处输入图像描述

UINavigationBar 与我的 UISearchBar 完全重叠...

Leo Natan 告诉我有关使用 iOS 6/7 Deltas 的信息,但由于我正在以编程方式创建和添加我的 UISplitViewControllers,

这可能不起作用我需要以编程方式设置 iOS 6/7,但我不知道如何,任何帮助我将不胜感激

4

4 回答 4

18

在 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
}
于 2013-09-25T15:52:51.023 回答
5

此外,您可以使用 NSFoundationVersionNumber

if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1) {
  // > iOS7
} else {
  // <= iOS6
}
于 2013-11-26T14:54:43.180 回答
3

您可以创建一个 makro 来解决这个问题。它对我有用。

#define iOS7Delta (([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0 ) ? 20 : 0 )
于 2013-11-27T09:38:27.577 回答
-2

如果视图嵌入在 UINavigationController 中 - 只需取消选中根导航栏的“半透明”即可。

在情节提要中,选择 Navigation Controller Scene,然后选择 Navigation Bar,然后在 Attributes Inspector (Utilities - 4 tab) 中取消选中“Translucent”

于 2013-12-10T15:07:54.980 回答