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

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

在这里输入图像说明

现在我转移到新的Xcode5,现在我有这样的devise:

在这里输入图像说明

UINavigationBar完全重叠我的UISearchBar …

利奥纳坦告诉我有关使用iOS 6/7 Deltas,但由于我正在创build和以编程方式添加我的UISplitViewControllers,

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

在iOS 7中现在有扩展的边缘,这就是导航栏与search栏重叠的原因。 你可以设置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 } 

你可以创build一个makro来解决这个问题。 这对我有用。

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

如果视图embedded在UINavigationController中 – 只需将根目录导航栏的“半透明”打勾即可。

在故事板中,select导航控制器场景,然后select导航栏,在属性检查器(实用程序 – 4选项卡)中,选中“半透明”