ios - iPhone 3.5 英寸屏幕 - 4 英寸屏幕 :

标签 ios iphone objective-c

我知道您可以使用带有 UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad 的 if 语句来选择 ipad 或 iphone。但我想知道你是否可以对 iPhone 3.5 英寸屏幕到 iPhone 4 英寸屏幕做同样的事情。我有一个最初为 iPhone 4 英寸屏幕设计的游戏,但已使用自动布局来修复两个设备之间的错误,我需要更改的一件事是当

if (ball.center.y > 600) {
    RandomPosition = arc4random() %248;
    RandomPosition = RandomPosition + 36;
    ball.center = CGPointMake(RandomPosition, -22);
}

因为最初是在4寸屏上设计的,所以游戏设置了>600像素时将小球重置到屏幕上方,刚好在iphone 4寸屏下方。它仍然可以正常工作,只是3.5英寸屏幕底部和位置重置之间有一点延迟。无论如何我可以用 UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom(iphone4???) 设置一个 if 语句来设置一个新的 ball.center.y > 300 什么的?

最佳答案

您可以尝试以下代码。 在 Constant.h 中添加这段代码

#define IS_IPAD (( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ) ? YES : NO)
#define IS_IPHONE_5 (([UIScreen mainScreen].scale == 2.f && [UIScreen mainScreen].bounds.size.height == 568)?YES:NO)
#define IS_RETINA_DISPLAY_DEVICE (([UIScreen mainScreen].scale == 2.f)?YES:NO)

现在要检查设备大小,请在您的 View 中添加以下代码

if (IS_IPAD)
{
       //do stuff for iPad
}
else
{
     if(IS_IPHONE_5)
     {
        //do stuff for 4 inch iPhone screen
     }
     else
     {
        //do stuff for 3.5 inch iPhone screen
     }

}

关于ios - iPhone 3.5 英寸屏幕 - 4 英寸屏幕 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22060543/

相关文章:

iphone - NSUserDefaults 或钥匙串(keychain)更好地在 iPhone 应用程序中保存用户名和密码

iphone - 当应用程序从后台恢复时执行什么方法

ios - 如何让 UITextView 检测网站、邮件和电话号码的链接

ios - 您好,我正在使用 swift,我正在尝试在选择 Collection View 单元格时更改 Collection View 单元格的标签

ios - 最终使用 PFFile(解析本地数据存储)保存在 PFObject 上?

iphone - 允许用户交互iphone sdk吗?

iphone - 我应该在 ARC 中使用 nil

iOS 在代码中查找与模拟器中的 View 相对应的文件

iphone - 如何使用iPhone连接服务器?

ios - Swift:按下 UITabBarItem 时如何执行操作