Обычно на каждой вкладке у UITabBar
вас есть небольшое изображение и название вкладки. Изображение располагается по центру вверху вкладки, чтобы разместить заголовок под ним. Мой вопрос: если вы хотите иметь tabBar только с изображением и без заголовка, есть ли способ переместить изображение вниз, чтобы оно лучше центрировалось внутри вкладки?
В настоящее время я использую (см. Ниже):
[tabBarItem setFinishedSelectedImage:tabSelected withFinishedUnselectedImage:tabUnselected];
но предпочел бы использовать более крупное изображение без заголовка, на данный момент, если я сделаю изображение больше, чем примерно 70 пикселей @ 2x, оно начнет срезаться сверху UITabBar
, оставляя много неиспользуемого места внизу.
источник
Вы также можете сделать это с помощью раскадровки. Выберите свой tabbaritem, перейдите в инспектор размеров и назначьте соответствующие вставки.
* Продемонстрировано на Xcode, версия 7.3.1 (7D1014)
источник
Сделайте подкласс
UITabBarController
, и в немviewDidLoad
:Swift 3:
источник
AppDelegate
также работает, но это, очевидно, не лучше, чем создание подкласса. Хотя у вас могут быть свои предпочтения :)Если вы используете Xamarin, это работает:
источник
Это сработало для меня
Swift 4
источник
SWIFT 3.0
Вы можете установить настройки изображения, установить верхний, левый, нижний и правый угол в соответствии с дизайном.
источник
Для iOS 11 вам необходимо переопределить метод TraitCollection помимо настройки ImageInsets. Пожалуйста, добавьте метод в свой подкласс UITabBarController
источник
return UITraitCollection(traitsFrom: [ super.traitCollection, UITraitCollection(horizontalSizeClass: .compact)])
сделал трюк для меня.В Swift 4.2 ,
UIEdgeInsetsMake
является depricated, вместо этого мы должны использоватьUIEdgeInsets
,источник