У наявних відповідях є кілька хороших ідей, багато з них працюють дещо інакше, і те, що ви оберете, також буде залежати від того, на які пристрої ви націлюєтесь, і якого виду ви прагнете досягти. 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
щоб отримати a 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).