Ios UIScreen.main.bounds是边对边吗?

Ios UIScreen.main.bounds是边对边吗?,ios,uiscreen,Ios,Uiscreen,我有一个相对简单的问题,但我似乎在任何地方都找不到答案。当我使用: UIScreen.main.bounds.height 这是否给了我从屏幕底部边缘到顶部的高度,还是仅到安全区域的高度?例如,iphonex的高度是一直到刻痕为止,还是一直到超过刻痕为止 iPhone X的高度是一直到凹口,还是一直超过凹口 您可以自己轻松地检查这一点。在任何iOS项目中的某个位置设置断点,查看当应用程序在您感兴趣的设备上运行时,bounds或nativeBounds在主屏幕上返回的矩形,例如iPhone X:

我有一个相对简单的问题,但我似乎在任何地方都找不到答案。当我使用:

UIScreen.main.bounds.height
这是否给了我从屏幕底部边缘到顶部的高度,还是仅到安全区域的高度?例如,iphonex的高度是一直到刻痕为止,还是一直到超过刻痕为止

iPhone X的高度是一直到凹口,还是一直超过凹口

您可以自己轻松地检查这一点。在任何iOS项目中的某个位置设置断点,查看当应用程序在您感兴趣的设备上运行时,
bounds
nativeBounds
在主屏幕上返回的矩形,例如iPhone X:

(lldb) po [[UIScreen mainScreen] bounds]
(origin = (x = 0, y = 0), size = (width = 375, height = 812))

(lldb) po [[UIScreen mainScreen] nativeBounds]
(origin = (x = 0, y = 0), size = (width = 1125, height = 2436))
您可以对照屏幕中报告的尺寸检查:

我假设主屏幕的
bounds
返回的矩形代表整个屏幕,而不仅仅是安全区域。但如果您仍然不确定,您可以编写几行代码,用这些尺寸绘制一个矩形,您将看到凹口和角遮挡了矩形的一部分:

iPhone X的高度是一直到凹口,还是一直超过凹口

您可以自己轻松地检查这一点。在任何iOS项目中的某个位置设置断点,查看当应用程序在您感兴趣的设备上运行时,
bounds
nativeBounds
在主屏幕上返回的矩形,例如iPhone X:

(lldb) po [[UIScreen mainScreen] bounds]
(origin = (x = 0, y = 0), size = (width = 375, height = 812))

(lldb) po [[UIScreen mainScreen] nativeBounds]
(origin = (x = 0, y = 0), size = (width = 1125, height = 2436))
您可以对照屏幕中报告的尺寸检查:

我假设主屏幕的
bounds
返回的矩形代表整个屏幕,而不仅仅是安全区域。但如果您仍然不确定,您可以编写几行代码,用这些尺寸绘制一个矩形,您将看到凹口和角遮挡了矩形的一部分:


AFAIK,该值忽略安全区域,这是真正的交易值得注意的是,
bounds
是以点为单位测量的屏幕矩形,考虑到方向,而
nativeBounds
返回以像素为单位的实际显示尺寸,不考虑方向。@Sh_Khan这看起来一点也不像是重复的-这里的OP已经知道如何获得屏幕边界(即“分辨率”),但询问返回的矩形是代表整个屏幕还是仅代表安全区域。你所指的DUP根本没有解决这个问题,它比安全区域的概念要古老得多。好吧,这个值忽略了安全区域,这是真正的交易。值得注意的是,
bounds
是以点为单位测量的屏幕矩形,考虑到方向,而
nativeBounds
返回以像素为单位的实际显示尺寸,而不考虑方向。@Sh_Khan这看起来一点也不重复-这里的OP已经知道如何获得屏幕边界(即“分辨率”),但是询问返回的矩形是代表整个屏幕还是仅代表安全区域。你所指的骗局根本没有解决这个问题,因为它比安全区的概念要古老得多。