与iPad迷你的屏幕尺寸处理(Dealing with iPad Mini screen size)

2019-06-18 14:42发布

新iPad迷你有一个7.9英寸的屏幕尺寸。 它有一个视网膜显示? 它会自动调整现有xibs和故事还是我们必须创建每两个版本?

难道我们对付它类似于我们应对iPhone 5的方式吗?

我将如何创建一个定义或条件,看是否在设备运行iPad的迷你?

Answer 1:

如果您的应用程序工作在iPad 1或iPad 2的它一样工作是在新的iPad迷你。 还有在小型无Retina显示屏。 从应用的角度看这是相同的ipad 2。

编辑:有人问如何确定何时应用程序在iPad上运行的迷你。 目前对此没有API检查。 屏幕尺寸并没有帮助。 UI_USER_INTERFACE_IDIOM()没有帮助。 直到有人居然有一个,有没有办法知道,如果UIScreenMode pixelAspectRatio是任何不同的(可能是一样的iPad 2)。

这样,只有一种可能性-拿到machineuname()和硬编码针对该值的检查。 这是从来没有希望的方法。 而截至发稿时,我们不知道的价值是什么。 也许iPad5,X假设第四代iPad是iPad4,X。

编辑:到目前为止,我已经看到了一份报告,iPad的迷你返回iPad2,5(是的,这是两个逗号5个),以及iPad2,6和iPad2,7的机器名。



Answer 2:

应用程序将正常工作。 但是,如果你有一些非常小的UI元素。 你可能想他们重温由于屏幕尺寸的减小。



Answer 3:

构建适用于iPad 2的分辨率的应用程序。 新的iPad Mini是无视网膜与分辨率为1024x768,这意味着已经工作在iPad 1和iPad 2的iPad的迷你自动运行应用程序。



Answer 4:

我认为菲尔·席勒(苹果公司的高级副总裁)说得好在新闻发布会上揭开iPad的迷你(约53:00为基调)

我们挑,为什么什么屏幕尺寸? 和团队工作非常努力想着这个。 我们想要一个iPad能够运行,而无需做任何工作的开发者为iPad编写的所有惊人的软件...

他接着说:

......而且像素更容易记住,因为他们是完全一样的。 第一代iPad和iPad 2的1024×768,并在新的iPad Mini是1024 768。 这意味着所有的为iPad创建的软件作品在iPad迷你不变。

因此,在总结和回答你的问题,没有iPad的迷你不具有Retina显示屏,你不必做任何额外的工作。 而iPad Mini将采用故事板或XIB你已经为ipad公司创建的。

然后尽量去检测,我无法找到任何尚未证明这一点(因为他们尚未发布),但我愿意打赌,以下将输出“iPad的迷你”。

NSLog(@"%@",[[UIDevice currentDevice] model]);

编辑:

NSLog(@"\nMachine ID: %@\nModel: %@\nLocalized Model: %@",machineName(),[[UIDevice currentDevice] model],[[UIDevice currentDevice] localizedModel]);

NSString *machineName()
{

    struct utsname systemInfo;
    uname(&systemInfo);

    return [NSString stringWithCString:systemInfo.machine
                              encoding:NSUTF8StringEncoding];
}

在我的iPad 16GB迷你(仅限Wifi)这将返回:

机器ID:iPad2,5
型号:iPad的
本地化型号:iPad的



Answer 5:

如果iPad Mini和非Retina iPad的都将是相同的屏幕大小不分,不能用你喜欢的东西是什么来确定设备画面是否是iPhone 5或iPhone 4:

#define IS_WIDESCREEN5 ( [ [ UIScreen mainScreen ] bounds ].size.height == 568 )
#define IS_WIDESCREEN4 ( [ [ UIScreen mainScreen ] bounds ].size.height == 480 )

所以为iPad Mini和非Retina iPad的,这样做:

#define IS_PAD ( [ [ UIScreen mainScreen ] bounds ].size.height == 512 )

和视网膜iPad的做:

#define IS_RETINA_PAD ( [ [ UIScreen mainScreen ] bounds ].size.height == 1024 )

这应该区分两种类型的画面,并绕过需要查明的规模目的的确切型号。 在另一种方法是使用自动布局,但我有控制的更好的感觉没有它。

我希望这有助于你问题的第二部分。 祝好运 :)



Answer 6:

你不必做任何不同。 由苹果提到它应该自动工作。 分辨率仍然是一样的iPad。



Answer 7:

iPad的迷你使用相同的分辨率非视网膜台iPad,iOS设备将使用1X显卡。 参考此链接... 链接



Answer 8:

为iPad Mini图象将同为iPad 1和2,但是建议您使用@ 2倍的图像视网膜屏幕了。 因为,一旦你的应用程序是在应用程序商店,你不能阻止人们从视网膜显示器下载它在iPad上。

所以在这一点的时候,你就必须让两个视网膜和非视网膜图像。

编程方式,独立的厦门国际银行的文件中没有规定的适用于iPad的Retina显示屏。 只要保持imageName@2x.png过的所有图像资源。



Answer 9:

为了检测iPad的迷你(任何型号)我使用这个代码(在iOS上测试10.x中):

- (BOOL)isIPadMini {
   return [[UIDevice currentDevice].name hasPrefix:@"iPad Mini"];
}


文章来源: Dealing with iPad Mini screen size
标签: ios ipad-mini