0

目前,我需要将 iOS 应用程序从 iOS 4.0(3.5 英寸显示屏)转换为 iOS 6.0(4 英寸显示屏)。

  1. 请建议我如何使 iOS 旧版本(5.0 及更早版本)应用程序与 ios6 和 iPhone5 兼容的最简单方法。

  2. 帮助我了解如何为 4 英寸 XIB 设置 3.5 英寸 XIB 的 UI 对象的框架。

  3. 如果有人有与此主题相关的好教程或文章,请提供链接。

4

1 回答 1

1

您应该使用以下代码来检测 ios6 和 iphone 5,并在区分后根据需要执行必要的更改。

符合系统定义中指定的版本

//#define __IPHONE_2_0 20000
//#define __IPHONE_2_1 20100
//#define __IPHONE_2_2 20200
//#define __IPHONE_3_0 30000
//#define __IPHONE_3_1 30100
//#define __IPHONE_3_2 30200
//#define __IPHONE_4_0 40000

//#define __IPHONE_6_0 60000 你可以这样写函数(你应该把这个版本存储在某个地方,而不是每次都计算它):

+ (NSInteger) getSystemVersionAsAnInteger{
int index = 0;
NSInteger version = 0;

NSArray* digits = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];
NSEnumerator* enumer = [digits objectEnumerator];
NSString* number;
while (number = [enumer nextObject]) {
    if (index>2) {
        break;
    }
    NSInteger multipler = powf(100, 2-index);
    version += [number intValue]*multipler;
    index++;
}
return version;
}

然后您可以按如下方式使用它:

if([Toolbox getSystemVersionAsAnInteger] >= __IPHONE_6_0)
{
  //blocks
} else 
{
//oldstyle
}

确定操作系统版本后,使用以下步骤进行转换。

  1. 为您的应用设置 4 英寸的启动图像。这就是您获得 1136 像素屏幕高度的方式(没有它,您将获得 960 像素,顶部和底部有黑色边距)。
  2. 测试您的应用程序,希望不要做任何其他事情,因为如果您正确设置了自动调整大小的蒙版,一切都会神奇地工作。
  3. 如果您没有,请使用适当的自动调整大小掩码调整您的视图布局,或者如果您只想支持 iOS 6,请查看 Auto Layout。
    1. 如果您需要专门为较大的屏幕做一些事情,那么看起来您必须检查 [[UIScreen mainScreen] bounds] 的高度(或 applicationFrame,但如果存在,则需要考虑状态栏高度)似乎没有特定的api。

例子:

CGRect screenBounds = [[UIScreen mainScreen] bounds];
if (screenBounds.size.height == 568) {
 // code for 4-inch screen
}else{
 // code for 3.5-inch screen
}

谢谢。

于 2012-10-04T12:23:56.530 回答