В существующих ответах есть несколько хороших идей, многие работают немного по-другому, и то, что вы выберете, также будет зависеть от того, на какие устройства вы нацеливаетесь и какой внешний вид вы стремитесь достичь. UITabBar
общеизвестно не интуитивно понятен, когда дело доходит до настройки его внешнего вида, но вот еще несколько уловок, которые могут помочь:
1). Если вы хотите избавиться от глянцевого покрытия, чтобы получить более плоский вид, сделайте следующее:
tabBar.backgroundColor = [UIColor darkGrayColor];
[tabBar.subviews[0] removeFromSuperview];
2). Чтобы установить собственные изображения для кнопок tabBar, выполните следующие действия:
for (UITabBarItem *item in tabBar.items){
[item setFinishedSelectedImage:selected withFinishedUnselectedImage:unselected];
[item setImageInsets:UIEdgeInsetsMake(6, 0, -6, 0)];
}
Где selected
и unselected
находятся UIImage
объекты по вашему выбору. Если вы хотите, чтобы они были одного цвета, самое простое решение, которое я нашел, - это создать UIView
желаемый цвет, backgroundColor
а затем просто визуализировать его UIImage
с помощью QuartzCore. Я использую следующий метод в категории, UIView
чтобы получить UIImage
с содержимым представления:
- (UIImage *)getImage {
UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, [[UIScreen mainScreen]scale]);
[[self layer] renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return viewImage;
}
3) Наконец, вы можете настроить стиль заголовков кнопок. Делать:
for (UITabBarItem *item in tabBar.items){
[item setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys:
[UIColor redColor], UITextAttributeTextColor,
[UIColor whiteColor], UITextAttributeTextShadowColor,
[NSValue valueWithUIOffset:UIOffsetMake(0, 1)], UITextAttributeTextShadowOffset,
[UIFont boldSystemFontOfSize:18], UITextAttributeFont,
nil] forState:UIControlStateNormal];
}
Это позволяет вам делать некоторые настройки, но все же довольно ограниченно. В частности, вы не можете свободно изменять расположение текста внутри кнопки и не можете иметь разные цвета для выбранных / невыбранных кнопок. Если вы хотите сделать более конкретный формат текста, просто установить , UITextAttributeTextColor
чтобы быть ясным и добавить текст в selected
и unselected
образы из части (2).