iPhone X UINavigationBar пользовательское фоновое изображение с UIAppearance - PullRequest
0 голосов
/ 20 сентября 2019

Я пытаюсь быстро адаптировать старое приложение iOS для совместимости с надрезанным дисплеем на новых iPhone.Это было относительно просто, за исключением одного UINavigationBar внутри UINavigationController.Ранее я использовал API UIAppearance для стилизации панели навигации с 64-пиксельным (строка состояния 20px + 44px панель навигации) градиентным фоном от белого к серому.Так как на новых iPhone строка состояния занимает более 20 пикселей, для других представлений, где я вручную добавляю панель навигации, я перемещаю ее вниз, так что строка в конечном итоге расширяется на 44 пикселя ниже строки состояния (поэтому при появлении белого пробела вверхуобязательно):

Status bar with correct gradient

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

Status bar with incorrect gradient

Есть ли способ (в порядке предпочтения) «выровнять» мое изображениев нижней части панели вместо верхней, измените рамку UINavigationBar внутри UINavigationController, измените рамку представления UINavigationController или, по крайней мере, растяните изображение по всей высоте панели (в этом решении этов конечном итоге выглядишь иначе, чем другие бары, но, вероятно, не слишком заметно)?Решения Objective-C предпочтительнее, так как, как я уже говорил, это старое приложение для iOS.Большое вам спасибо!

...