objectivec检测iphoneX给出的尺寸不正确(2001年,而不是2436)

时间:2018-03-21 16:40:02

标签: ios objective-c iphone iphone-x

我正在尝试检测目标C中的iPhoneX,并找到了几个帖子/指南/网站,例如显示如何操作的https://hype.codes/how-detect-iphone-x-programmatically以及用于比较它的值。 这通常意味着检查 [[UIScreen mainScreen] nativeBounds] .size.height for 2436 要么 [[UIScreen mainScreen]界限] .size.height为812

但这是奇怪的部分: 当我使用任何一种身高时,我会得到与预期值不同的结果。

对于本地人来说,我得到2001年,而不是2436年 当使用边界时,我得到667,而不是812,这与任何iphone6 / 7/8检测相同

在这两种情况下,我都认为缺少145px(和nativebounds @ 3x = 435)尺寸差异,但为什么我不能得到正确的尺寸? 喜欢它在iOS人机界面指南中显示 ios human interface guidelines dimensions

我已经在模拟器和实际的iphoneX上尝试了这个,有人非常友好地让我试验,但是继续遇到这个问题,我完全陷入了困境。

我真的希望有人能帮助我找到并解决这个问题,maaany提前感谢。

1 个答案:

答案 0 :(得分:2)

我无法亲自复制您的问题,但后来我找到了答案:https://stackoverflow.com/a/47819966/341994

简而言之,您正在构建一个早期的iOS系统或Xcode版本(或两者),其中iPhone X未知。所以,就像你说的那样,iPhone X就像iPhone 8一样,因为这是你的iOS系统所理解的。如果它没有这样做,所有旧的应用程序都会破坏iPhone X.并且给出的值是准确的,因为您给出的尺寸应用程序显示的尺寸;它是" letterboxed"进入那些方面。

更新到Xcode 9.2并针对iOS 11.2构建以解决您的问题。