Какова высота верхнего бара iPhone X?

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

enter image description here

6 ответов


дисплей на iPhone X, однако, это 145pt taller чем 4,7 " дисплей, приводящ К В грубо 20% дополнительном вертикальном космосе для содержания.

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

enter image description here

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

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

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

enter image description here

портрет

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

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

пейзаж

  • стандартное название-32pt
  • нижняя панель-21pt

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

enter image description here


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

let navBarHeight = view.safeAreaInsets.top

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

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


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

ObjC:

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

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


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

let barHeight = navigationController?.navigationBar.frame.maxY

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

navigationController?.navigationBar.prefersLargeTitles = false

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

Apple Docs

по данным Джефф Хакворт его 88

навигация название типа :

  • стандартный заголовок
  • большой заголовок

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

navigationController?.navigationBar.prefersLargeTitles = true