UIScreen.main.bounds от края до края? - PullRequest
0 голосов
/ 28 мая 2019

У меня есть относительно простой вопрос, но я не могу найти ответ нигде. Когда я использую:

UIScreen.main.bounds.height

Это дает мне высоту от нижнего края экрана до самого верха или только до безопасной зоны? Например, это высота только до метки для iPhone X, или она поднимается выше метки.

1 Ответ

2 голосов
/ 28 мая 2019

- это высота только до надреза для 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))

Вы можете проверить это по размерам, указанным для экрана в Документация Apple :

portion of display table

Я бы предположил из этого, что прямоугольник, возвращаемый bounds для основного экрана, представляет собой весь экран, а не только безопасную область. Но если вы все еще не уверены, вы можете написать несколько строк кода, который рисует прямоугольник с этими размерами, и вы увидите, что вырез и углы закрывают части прямоугольника:

part of a rectangle drawn at the screen bounds

...