如何以编程方式设置iOS 6/7 Deltas

时间:2013-09-25 15:20:28

标签: ios objective-c uisearchbar xcode5 delta

当我离开iOS6时,我正在使用Xcode 4.6开发一个UISplitView应用程序:

enter image description here

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

enter image description here

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

Leo Natan告诉我使用iOS 6/7 Deltas,但是因为我正在以编程方式创建和添加我的UISplitViewControllers,

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

4 个答案:

答案 0 :(得分: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
}

答案 1 :(得分:5)

此外,您可以使用NSFoundationVersionNumber

if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1) {
  // > iOS7
} else {
  // <= iOS6
}

答案 2 :(得分:3)

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

#define iOS7Delta (([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0 ) ? 20 : 0 )

答案 3 :(得分:-2)

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

在故事板中,选择导航控制器场景, 下一步选择导航栏并在属性检查器中(实用程序 - 4选项卡) 解开“半透明”