Как вы настраиваете рамку или вертикальное выравнивание UIBarButtonItem, содержащегося в экземпляре UIToolbar? - PullRequest
21 голосов
/ 07 мая 2010

Горизонтальное расположение UIBarButtonItems не проблема, я могу просто заполнить пространство фиксированными / гибкими элементами пространства. Тем не менее, я не могу настроить элемент панели инструментов по вертикали. UIToolbar не имеет свойства выравнивания, а UIBarButtonItem не имеет возможности установить свой фрейм.

Мне нужно сделать это, потому что мы используем набор пользовательских значков, созданных с помощью initWithImage, и стандартных значков, созданных с помощью initWithBarButtonSystemItem. Пользовательские значки не центрированы должным образом (они смещены вверх относительно системных значков, которые центрированы правильно), поэтому панель инструментов выглядит неудобно.

Ответы [ 3 ]

34 голосов
/ 18 мая 2010

Да, 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 пикселя вниз (НО изменяет высоту изображения, чтобы оно выглядело сжатым).

3 голосов
/ 09 мая 2010

свойство imageInsets объекта UIBarItem?

1 голос
/ 07 мая 2010

Кажется, что это не простой и понятный способ сделать это, поэтому я пошел с уродливым, но функциональным взломом: вложение.Я вставил другой UIToolbar, содержащий кнопку, в UIView, который я установил как UIBarButtonItem на исходной панели инструментов, используя initWithCustomView.Второй UIToolbar может свободно перемещаться в пределах UIView, и фактический значок сохраняет все свойства UIBarButtonItem.

Ugh.

...