How to differentiate between iphone4 and iphone 3

前端 未结 9 1416
情歌与酒
情歌与酒 2020-11-28 20:28

I am trying to build a game for the iphone using cocos2d engine. I wanted to know how can I tell a difference whether the user is using iphone 4 or iphone 3 as I wanted to l

9条回答
  •  我在风中等你
    2020-11-28 20:40

    For detecting retina display on all devices including the new iPad

        +(BOOL)isRetinaDisplay {
        // since we call this alot, cache it
        static CGFloat scale = 0.0;
        if (scale == 0.0) {
            // NOTE: In order to detect the Retina display reliably on all iOS devices,
            // you need to check if the device is running iOS4+ and if the 
            // [UIScreen mainScreen].scale property is equal to 2.0. 
            // You CANNOT assume a device is running iOS4+ if the scale property exists,
            // as the iPad 3.2 also contains this property.
            // On an iPad running iOS3.2, scale will return 1.0 in 1x mode, and 2.0
            // in 2x mode -- even though we know that device does not contain a Retina display.
            // Apple changed this behavior in iOS4.2 for the iPad: it returns 1.0 in both
            // 1x and 2x modes. You can test this yourself in the simulator.
            // I test for the -displayLinkWithTarget:selector: method on the main screen
            // which exists in iOS4.x but not iOS3.2, and then check the screen's scale:
    
            if ([[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)] && 
                ([UIScreen mainScreen].scale == 2.0)) {
                scale = 2.0;
                return YES;
            } else {
                scale = 1.0;
                return NO;
            }   
    
        }
        return scale > 1.0;
    }
    

    Credit to: Adriano Paladini http://developer.appcelerator.com/question/133826/detecting-new-ipad-3-dpi-and-retina

提交回复
热议问题