- [UIBarButtonItem setTitlePositionAdjustment: forBarMetrics:] игнорирует вертикальное смещение

У меня есть приложение с некоторыми настраиваемыми позициями, и я хотел бы изменить стандартное вертикальное выравнивание текста кнопки. Я пробовал настройку

[buttonItem setTitlePositionAdjustment:UIOffsetMake(0, -22) forBarMetrics:UIBarMetricsDefault]

но ничего не меняется. Как ни странно, если я устанавливаю горизонтальное смещение, кнопка движется просто отлично. Похоже, что изменения вертикального выравнивания не соблюдаются. Это ошибка на iOS 7? Я что-то не понимаю о API? Я не вижу документации, говорящей, что вертикальное выравнивание игнорируется.

(пример проекта, показывающий проблему)

Ответы

Ответ 1

К сожалению, setTitlePositionAdjustment:forBarMetrics: не вступает в силу. Лучшим обходным решением, которое я нашел, было использование UIButton вместо этого, что можно сделать прямо в Interface Builder.

  • Добавьте UIButton в UIBarButtonItem и установите шрифт или изображение, размер и т.д.
  • В Инспекторе атрибутов установите выравнивание управления UIButton вправо

ib screenshot

  1. Подключите кнопку вверх к любым действиям, которые вам нужны.