У меня относительно простой вопрос, но я нигде не могу найти ответ. Когда я использую:
UIScreen.main.bounds.height
Дает ли это мне высоту от нижнего края экрана до самого верха или только до безопасной зоны? Например. это высота только до выемки для iPhone X или она идет полностью за выемку.
Стоит отметить, что bounds
— это прямоугольник экрана, измеренный в точки с учетом ориентации, тогда как nativeBounds
возвращает фактические размеры экрана в пикселей без учета ориентации.
@Sh_Khan Это совсем не похоже на дубликат — ОП здесь уже знает, как получить границы экрана (то есть «разрешение»), но спрашивает, представляет ли возвращаемый прямоугольник весь экран или только безопасную область. Обман, на который вы указали, вообще не касается этого, поскольку он намного старше, чем понятие безопасной зоны.
is the height only until the notch for the iPhone X or does it go all that way up past the notch
Вы можете легко проверить это самостоятельно. Установите точку останова где-нибудь в любом проекте iOS и посмотрите, какие прямоугольники возвращаются bounds
или nativeBounds
для главного экрана, когда приложение запускается на интересующем вас устройстве, например. Айфон Х:
(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:
Я бы предположил, что прямоугольник, возвращаемый bounds
для главного экрана, представляет собой экран весь, а не только безопасную область. Но если вы все еще не уверены, вы можете написать несколько строк кода, который рисует прямоугольник с такими размерами, и вы увидите, что выемка и углы закрывают части прямоугольника:
Насколько я знаю, это значение игнорирует безопасные зоны, это реально ?