Может кто-нибудь сказать мне, пожалуйста, как я могу переместить название UITabBarItem, например, 2px в начало?
Как переместить название UITabBarItem?
Ответ 1
Решение:
UITabBarItem *item = [tabBar.items objectAtIndex:0];
item.titlePositionAdjustment = UIOffsetMake(0, -5.0);
Ответ 2
Обновление для Swift 3
Поместите этот код внутри UITabBarController
:
UITabBarItem.appearance().titlePositionAdjustment = UIOffset(horizontal: 0, vertical: -5)
Кредит переходит на Тим Браун
Ответ 3
Вы не можете... вы можете взломать свой путь, но это будет нелегко и может сломать ваше приложение для будущих обновлений iOS.
Лучше всего было бы создать свою собственную систему UITabBar... вот хороший путеводитель, на который вы можете взглянуть..
http://idevrecipes.com/2011/01/04/how-does-the-twitter-iphone-app-implement-a-custom-tab-bar/
Ответ 4
Вы можете использовать tabbarItem.titlePositionAdjustment
для настройки.
В случае, если вы хотите сделать гораздо больше с этим, перейдите на вкладку tabbaritem и найдите метку на tabbar.subviews
. Например
int i = 0;
for (NSObject *view in self.tabBar.subviews)
{
MTLog(@"%@", view);
if ([view respondsToSelector:@selector(subviews)])
{
for (NSObject *childView in ((UIView *)view).subviews)
{
if ([childView isKindOfClass:[UILabel class]])
{
if (i > (titlesArray.count - 1))
break;
UILabel *label = (UILabel *)childView;
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:titlesArray[i] attributes:@{
NSFontAttributeName:[UIFont systemFontOfSize:9]
}];
NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];
[style setMinimumLineHeight:26];
[style setAlignment:NSTextAlignmentRight];
[attributedString addAttribute:NSParagraphStyleAttributeName
value:style
range:NSMakeRange(0, attributedString.length)];
label.attributedText = attributedString;
i++;
}
}
}
}