在Xcode 5中selectiOS 6时更改GUI

当我使用Xcode 5并将部署目标设置为7.0时,应用程序可以同时运行在4英寸和3.5英寸显示器上。

我已经下载了iOS 6 SDK。

当我将基础SDK更改为iOS 6并将部署目标设置为iOS 6.1时,我的GUI会受到影响,从而更改每个图像,导航栏,图像和所有其他控件。

我没有使用autolayout,每个类中有一个UIViewController有两个.xib文件。

那么,我该如何解决这个问题呢?

提前致谢。

当您使用iOS 6 SDK编译时,您的应用程序是使用iOS6图像,视图,键盘等创build的。

如果您正在编译iOS6,则无法使用iOS7视图,您需要编译iOS7,甚至认为您的应用程序与iOS6兼容(将部署目标设置为iOS6)

长话短说 – 你不能在你的iOS 6应用程序中使用iOS 7graphics用户界面。 如果你想要,你可以创build自定义的GUI,并在你的应用程序中使用它。 但有些元素会有所不同,您最好阅读本指南:

  • 苹果文档

另外,如果您为不同版本的iOS构build应用程序,则最好使用自动布局:

  • Ray Wenderlich – iOS 7中的自动布局教程:第1部分
  • Ray Wenderlich – iOS 6中的自动布局教程:第1部分

从iOS 6过渡到iOS 7的一些问题:

  • IOS7中的状态栏和导航栏问题

使用此代码:

 if([[[UIDevice currentDevice] systemVersion] isEqualToString: @"7.0"]) { //do stuff } else { // code here } 

编译iOS 7时,您使用的是iOS 7特定的GUI元素( 与iOS 6有很大差异 )。 即使您在iOS 7上编译iOS 6(约16%)的电话,也会看到iOS 6 GUI元素,原因很明显。

实际上没有办法解决这个问题,你应该简单地开发iOS 7,让iOS 6用户仍然拥有iOS 6的GUI元素。

如果您的应用程序在iOS 7中运行良好,并且需要运行iOS 6,则需要使用以下方法pipe理应用程序:

 if ([currSysVer compare:reqSysVer options:NSNumericSearch] != NSOrderedAscending){ //CGRect gridFrame; if ([[UIScreen mainScreen] bounds].size.height == 568) { // Do nothing if already managed }else{ // Do nothing if already managed } }else{ //CGRect gridFrame for ios6; if ([[UIScree`enter code here`n mainScreen] bounds].size.height == 568) { //Manage frame here }else{ //Manage frame here } }