【问题标题】:Is UIScreen.main.bounds edge to edge?UIScreen.main.bounds 边缘到边缘吗?
【发布时间】:2019-05-28 12:48:02
【问题描述】:

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

UIScreen.main.bounds.height

这是给我从屏幕底部边缘一直到顶部的高度还是只到安全区域?例如。是直到 iPhone X 的缺口的高度,还是一直超过缺口的高度。

【问题讨论】:

  • AFAIK,该值忽略了安全区域,这是真正的交易???
  • 值得注意的是bounds是以points为单位测量的屏幕矩形,考虑到方向,而nativeBounds中返回实际显示尺寸像素,不考虑方向。
  • @Sh_Khan 这看起来根本不像是重复的——这里的 OP 已经知道如何获取屏幕边界(即“分辨率”),但正在询问返回的矩形是否代表整个屏幕或者只是安全区域。您指出的骗局根本没有解决这个问题,比安全区域的概念要古老得多。

标签: ios uiscreen


【解决方案1】:

是直到 iPhone X 的凹槽的高度,还是一直向上超过凹槽

您可以自己轻松检查。在任何 iOS 项目中的某处设置断点,并查看当应用在您感兴趣的设备上运行时,boundsnativeBounds 为主屏幕返回了哪些矩形,例如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))

您可以对照Apple's documentation 中报告的屏幕尺寸检查:

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

【讨论】:

    猜你喜欢
    • 2011-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    相关资源
    最近更新 更多