Как вы настраиваете рамки или вертикальное выравнивание объекта UIBarButtonItem, содержащегося в экземпляре UIToolbar?
Горизонтальное позиционирование UIBarButtonItems не представляет проблемы, я могу просто проложить пространство с помощью фиксированных/гибких элементов пространства. Однако я не могу настроить элемент панели инструментов по вертикали. UIToolbar не имеет свойства выравнивания, а UIBarButtonItem не имеет возможности установить свой фрейм.
Мне нужно сделать это, потому что мы используем сочетание пользовательских значков, созданных с помощью initWithImage, и стандартные значки, созданные с помощью initWithBarButtonSystemItem. Пользовательские значки не центрируются должным образом (они смещены вверх, относительно системных значков, которые центрированы правильно), поэтому панель инструментов выглядит неудобно.
Ответы
Ответ 1
Да, imageInsets отлично работает для меня!
float topInset = 4.0f;
myUIBarButton.imageInsets = UIEdgeInsetsMake(topInset, 0.0f, -topInset, 0.0f);
перемещает изображение на 4 пикселя вниз.
ИЗБЕГАЙТЕ ЭТО:
float topInset = 4.0f;
myUIBarButton.imageInsets = UIEdgeInsetsMake(topInset, 0.0f, 0.0f, 0.0f);
перемещает изображение на 4 пиксела вниз (НО изменяет высоту изображения, чтобы он выглядел сжатым).
Ответ 2
imageInsets свойство UIBarItem?
Ответ 3
Кажется, это не простой, чистый способ сделать это, поэтому я пошел с уродливым, но функциональным взломом: гнездование. Я запустил еще один UIToolbar, содержащий кнопку, в UIView, который я установил как UIBarButtonItem на исходной панели инструментов, используя initWithCustomView. Второй UIToolbar может свободно перемещаться внутри UIView, и фактический значок сохраняет все свойства UIBarButtonItem.
Тьфу.