iOS 6 - Distinguishing between iPhone 5 and other devices?

|▌冷眼眸甩不掉的悲伤 提交于 2019-11-29 15:29:23

问题


With the announcement of the iPhone 5 and new iPods today, I'm starting work on optimizing my app to take advantage of the new, extra screen space. I've already got to the point where my app isn't "letterboxed" anymore. I know it's early, but does anyone know how I could distinguish between the new, taller devices and the old ones?

Ideally, it would be something like this:

if (device is iPhone 5 or taller iPod touch) {
    do stuff that is ideal for the taller screen
} else {
   do what I've been doing before for the smaller screen
}

Thanks! I hope everyone else is also enjoying what Apple announced today as well!


回答1:


On the top of my head, you can use bounds information for the UIScreen [UIScreen mainScreen].bounds and check the height or better the ratio of the screen.




回答2:


if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
    CGSize result = [[UIScreen mainScreen] bounds].size;
    if(result.height == 480)
    {
        // iPhone Classic
    }
    if(result.height == 568)
    {
        // iPhone 5
    }
}

see this link for different type of checking




回答3:


- (BOOL)isTall
{
    CGRect bounds = [[UIScreen mainScreen] bounds];
    CGFloat height = bounds.size.height;
    CGFloat scale = [[UIScreen mainScreen] scale];

    return (([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) && ((height * scale) >= 1136));
}



回答4:


For those that the screen still returns 480 instead of 568, you need to add a new launch images with the new size in the summary tab of application settings.



来源:https://stackoverflow.com/questions/12398798/ios-6-distinguishing-between-iphone-5-and-other-devices

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!