2 garaster garaster 于 2013.07.03 11:11 提问

怎么判断IOS设备的版本

有两个storyboard分别制定给iPhone5和iPhone4的尺寸。如何让代码检测ios版本?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    // 1
    UIStoryboard * mainStoryboard = nil ;
    if ( SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO ( @ "6.0" ) ) {
        mainStoryboard = [ UIStoryboard storyboardWithName : @ "iPhones6.0" bundle : nil ] ;
    } else {
        mainStoryboard = [ UIStoryboard storyboardWithName : @ "iPhones3-5" bundle : nil ] ;
    }
    // 2
    self.window = [ [ UIWindow alloc ] initWithFrame : [ [ UIScreen mainScreen ] bounds ] ] ;
    self.window.rootViewController = [ mainStoryboard instantiateInitialViewController ] ;
    [ self.window makeKeyAndVisible ] ;
    return YES;
}

3个回答

zhanglei5415
zhanglei5415   Rxr 2013.07.03 15:43

判断是否为iphone5的宏

#define IPHONE5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : 0)
u013243469
u013243469   2014.11.25 14:10

这个不对吧,版本代表不了手机型号,为何不去获取物理屏幕大小好了呢?

zhanglei5415
zhanglei5415   Rxr 2014.11.25 20:33

其实一个storyboard就可以适配iphone5,iphone4的尺寸。在storyboard中可以设置UI元素的约束来定位位置,这里需要用到NSLayoutConstrant 技术

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!