Вы не можете делать то, что вы хотите напрямую - положение вашего представления заголовка находится вне вашего контроля (когда управляется UINavigationBar
).
Однако есть по крайней мере две стратегии для получения желаемого эффекта:
1) Добавьте представление заголовка не как «правильный» заголовок панели навигации, а как подпредставление.из UINavigationBar
.(Примечание: это не «официально» санкционировано, но я видел, что это сделано, и работает. Очевидно, вы должны следить за битами перезаписи метки заголовка кнопок и обрабатывать навигационные панели разных размеров для разных ориентаций и т. Д.).- немного неудобно.)
2) Создайте интеллектуальный подкласс UIView, который отображает заданное подпредставление (которое будет вашей UILabel) в позиции, рассчитанной для эффективного отображения подпредставления, идеально центрированного на экране.Для этого ваш интеллектуальный подкласс UIView будет реагировать на события макета (или frame
изменения свойств и т. Д.), Изменяя положение (frame
) подпредставления метки.
Лично мне нравитсяИдея подхода 2) лучшее.