Большой заголовок UINavigationBar выровнен по левому краю и центрирован по вертикали в последней версии iOS, но не в болIOS

Программируем под IOS
Ответить
Anonymous
 Большой заголовок UINavigationBar выровнен по левому краю и центрирован по вертикали в последней версии iOS, но не в бол

Сообщение Anonymous »

Я настраиваю UINavigationBar с помощью UINavigationBarAppearance.
Моя цель:
Заголовок должен быть выровнен по левому краю
Заголовок должен быть вертикально центрирован внутри панели навигации
Поведение должно быть одинаковым во всех версиях iOS
В последних версиях iOS это работает отлично — заголовок выровнен по левому краю и вертикально по центру.
Однако на старых устройствах (например, iPhone X с более старой версией iOS) заголовок по-прежнему выравнивается по левому краю, но не центрируется по вертикали (он выглядит немного ниже).
Вот код, который я использую:

Код: Выделить всё

func setUpToolBar() {

// Force inline title (left aligned)
navigationItem.largeTitleDisplayMode = .inline
navigationController?.navigationBar.prefersLargeTitles = true

let appearance = UINavigationBarAppearance()
appearance.configureWithTransparentBackground()

if #available(iOS 26.0, *) {
appearance.largeTitleTextAttributes = [
.font: UIFont.HelveticaNeueBold(32)
]
} else {
appearance.largeTitleTextAttributes = [
.font: UIFont.HelveticaNeueBold(32)
]
}

navigationController?.navigationBar.standardAppearance = appearance
navigationController?.navigationBar.compactAppearance = appearance
navigationController?.navigationBar.scrollEdgeAppearance = appearance

self.title = String.strProgress.localized

navigationItem.rightBarButtonItem = makeCircularBarButton(
imageName: "iconUpgrade",
backgroundColor: UIColor.white.withAlphaComponent(0.15),
tintColor: .black,
action: #selector(onTapUpgrade),
target: self
)
}

Наблюдаемое поведение
Последняя версия iOS: заголовок выровнен по левому краю и центрирован по вертикали (правильно)
Более старая версия iOS (iPhone X): заголовок выровнен по левому краю, но не центрирован по вертикали
Ожидаемое поведение
Заголовок должен быть центрирован по вертикали на всех версиях iOS, включая старые устройства.
Вопрос
Существует ли поддерживаемый способ последовательного центрирования заголовка панели навигации по вертикали в разных версиях iOS при использовании UINavigationBarAppearance без:
Увеличения высоты панели навигации
Использования частных API
Замены заголовка пользовательским заголовкомView
Или это ограничение UIKit это нельзя исправить в старых версиях iOS?

Подробнее здесь: https://stackoverflow.com/questions/798 ... test-ios-b
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»