Подтвердить что ты не робот

Какова максимальная высота экрана iPhone X?

Я хотел бы узнать точную высоту верхней панели iPhone X. Не могли бы вы упомянуть строку состояния и высоту навигационной панели iPhone X. Пожалуйста, помогите мне.

введите описание изображения здесь

4b9b3361

Ответ 1

  Дисплей на iPhone X, однако, на 145 пт выше, чем 4,7 ", что дает примерно 20% дополнительного вертикального пространства для контента.

для получения дополнительной информации вы получите HIG для iphone X из яблочных документов и подробное описание в здесь1 и здесь2

enter image description here

высота строки состояния

ранее 20pt, теперь 44pt

Из-за датчиков в верхней части дисплея новая строка состояния разделена на 2 части. Если ваш пользовательский интерфейс делает что-то особенное с этим пространством (ранее 20pt, теперь 44pt), потому что оно будет выше на iPhone X. Убедитесь, что его можно динамически изменять по высоте. Замечательно, что высота не изменится, если пользователь звонит по телефону или использует навигационное приложение, что ранее было на других iPhone.

enter image description here

портрет

Высота навигационной панели как обычно 88 и время большого заголовка 140

  • Стандартный заголовок - 44pt (88pt со строкой состояния)
  • Большое название - 140pt
  • нижняя полоса - 34pt

Пейзаж

  • Стандартный заголовок - 32pt
  • нижний бар - 21pt

Ответ 2

Панель навигации, как обычно, 44pt (когда нет больших заголовков), а строка состояния увеличилась с 20pt до 44pt. Вот что вы можете ввести в отладчике, чтобы проверить это:

enter image description here

Ответ 3

Вы можете программно получить высоту панели навигации, используя safeAreaInsets на view в контроллере вида:

let navBarHeight = view.safeAreaInsets.top

Это будет учитывать, будет ли это большая панель навигации заголовка или нет, а также будет ли прикреплена к ней панель поиска.

См. документацию safeAreaInsets для получения дополнительной информации.

Ответ 4

Вы можете просто получить его следующим образом (Swift 3):

let barHeight = navigationController?.navigationBar.frame.maxY

Чтобы получить правильное значение, убедитесь, что вы вызываете его после установки prefersLargeTitles

navigationController?.navigationBar.prefersLargeTitles = false

Ответ 5

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

ObjC:

CGRect navbarFrame = self.navigationController.navigationBar.frame;
float topWidth  = navbarFrame.size.width;
float topHeight = navbarFrame.size.height + navbarFrame.origin.y;

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

Ответ 6

В Apple Docs нет спецификации

Apple Docs

Согласно Джефф Хакворт его 88

Типы заголовков навигации:

  • Стандартное название
  • Большой заголовок

Увеличение панели навигации в iOS 11

navigationController?.navigationBar.prefersLargeTitles = true

Ответ 7

Используйте его, если хотите узнать, где нужно начинать контент

extension UIViewController {
  var navigationBarbarContentStart: CGFloat {
    return self.navigationBarTopOffset + self.navigationBarHeight
  }
  var navigationBarTopOffset: CGFloat {
    return self.navigationController?.navigationBar.frame.origin.y ?? 0
  }

  var navigationBarHeight: CGFloat {
    return self.navigationController?.navigationBar.frame.height ?? 0
  }
}