6

随着今天 iPhone 5 和新 iPod 的发布,我开始着手优化我的应用程序,以利用新的、额外的屏幕空间。我已经到了我的应用不再是“信箱”的地步了。我知道现在还早,但有人知道我如何区分新的、更高的设备和旧的设备吗?

理想情况下,它会是这样的:

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
}

谢谢!我希望其他人也能享受苹果今天宣布的内容!

4

4 回答 4

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

有关不同类型的检查,请参阅此链接

于 2012-10-10T04:43:34.083 回答
12
- (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));
}
于 2012-09-17T22:27:07.717 回答
6

在我的脑海中,您可以使用 UIScreen 的边界信息 [UIScreen mainScreen].bounds并检查高度或更好的屏幕比例。

于 2012-09-13T02:58:29.820 回答
3

对于屏幕仍返回 480 而不是 568 的那些,您需要在应用程序设置的摘要选项卡中添加具有新尺寸的新启动图像。

于 2012-09-20T05:26:51.810 回答