Что такое "безопасный регион" для iPhone X (в пикселях), который влияет на верхнюю и нижнюю планку?

Я прочитал Руководства по человеческому интерфейсу для iPhone X и в нем конкретно не указано "безопасный регион" (область, которая обслуживает как верхний вырез и нижний план на iPhone X). Я хотел бы знать размеры пикселей этой области, включая размеры, удаленные сверху и снизу.

Ответ 1

В портрет

  • Верх: 44pt
  • Внизу: 34pt
  • Влево/вправо: 0pt

В ландшафте

  • Вверху: 0pt
  • Внизу: 21pt
  • Влево/вправо: 44pt

enter image description here

enter image description here

Ответ 2

Распечатав вставки безопасной области текущего окна с помощью следующего кода, вы можете получить размеры точек верхней и нижней безопасной области.

if #available(iOS 11.0, *) {
    UIApplication.shared.keyWindow?.safeAreaInsets
    // ...
}

На портрете верхняя область составляет 44 точки в длину, а нижняя область составляет 34 точки в длину.

Поскольку iPhone X имеет разрешение @3x, длина верхней области составляет 132 пикселя, а нижней - 102 пикселя.

Ответ 3

Xcode 9 ввел направляющие макета безопасной области в конструктор интерфейса. Вы можете включить их, зайдя в инспектор файлов раскадровки и отметив флажок "Использовать руководства по разметке безопасной области"

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

  • Оранжевая рамка обзора: (0,0, 44,0, 375,0, 734,0)
  • Синяя рамка просмотра: (0,0, 0,0, 375,0, 812,0)

Отсюда мы можем рассчитать, что 44 точки были использованы для верхней безопасной зоны, в то время как 34 точки были использованы для нижней зоны.

Ответ 4

Вы можете получить его из свойства safeAreaInsets представления в UIViewController.