Как изменить ширину UITabBarItem? - PullRequest
8 голосов
/ 31 июля 2011

Как изменить ширину UITabBarItem?

У меня есть элемент с заголовком, который шире, чем ширина элемента по умолчанию.Как я могу это исправить?

Ответы [ 4 ]

19 голосов
/ 17 апреля 2014

Решение для iOS7 и более поздних версий:

Для UITabBar введено новое свойство: itemWidth .

Установите для itemWidth положительное значение, которое будет использоваться в качестве ширины для вкладки. элементы бара, когда они расположены как центрированная группа (в отличие от заполнение панели вкладок). По умолчанию 0 или значения меньше 0 будут интерпретируется как определенная системой ширина.

@property(nonatomic) CGFloat itemWidth NS_AVAILABLE_IOS(7_0) UI_APPEARANCE_SELECTOR;

Так что вы можете сделать это в своем AppDelegate:

[[UITabBar appearance] setItemWidth:WIDTH];

Если вы хотите заполнить весь UITabBar:

[[UITabBar appearance] setItemWidth:self.window.frame.size.width/NUMBER_OF_ITEMS];

How to fill the UITabBar

1 голос
/ 13 марта 2013

Вы можете изменить расстояние (и ширину) элементов панели вкладок, создав подкласс UITabBar и переопределив его метод layoutSubviews.Вы найдете все кнопки панели вкладок в массиве self.subViews.Их класс - непубличный UITabBarButton, но они наследуются от UIControl, поэтому вы можете идентифицировать все кнопки панели вкладок, проверяя, являются ли они классом UIControl.Тогда все, что вам нужно, это изменить рамку кнопок панели вкладок.

1 голос
/ 01 августа 2011

Я только что просмотрел документацию и не нашел метода для настройки ширины UITabBarItem.

Возможным решением будет размещение представления в контроллере панели вкладок для загрузки пользовательского UITabBarItem, который имеет правильную ширину.

0 голосов
/ 23 августа 2018

Нашел более простое решение для swift, если вы подкласс UITabBarController это автоматически заполнит элементы панели вкладок

self.tabBar.itemPositioning = .fill
...