W istniejących odpowiedziach jest kilka dobrych pomysłów, wiele z nich działa nieco inaczej, a wybór zależy również od tego, na które urządzenia celujesz i jaki wygląd chcesz osiągnąć. UITabBar
jest notorycznie nieintuicyjny, jeśli chodzi o dostosowywanie wyglądu, ale oto kilka innych sztuczek, które mogą pomóc:
1). Jeśli chcesz pozbyć się błyszczącej nakładki, aby uzyskać bardziej płaski wygląd, wykonaj:
tabBar.backgroundColor = [UIColor darkGrayColor];
[tabBar.subviews[0] removeFromSuperview];
2). Aby ustawić niestandardowe obrazy na przyciskach tabBar, wykonaj coś takiego:
for (UITabBarItem *item in tabBar.items){
[item setFinishedSelectedImage:selected withFinishedUnselectedImage:unselected];
[item setImageInsets:UIEdgeInsetsMake(6, 0, -6, 0)];
}
Gdzie selected
i unselected
są UIImage
wybrane przez Ciebie obiekty. Jeśli chcesz, aby miały jednolity kolor, najprostszym rozwiązaniem, które znalazłem, jest utworzenie UIView
żądanego, backgroundColor
a następnie renderowanie go na a UIImage
za pomocą QuartzCore. Używam następującej metody w kategorii, UIView
aby uzyskać UIImage
z zawartością widoku:
- (UIImage *)getImage {
UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, [[UIScreen mainScreen]scale]);
[[self layer] renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return viewImage;
}
3) Na koniec możesz dostosować stylizację tytułów przycisków. Zrobić:
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];
}
Pozwala to na wprowadzenie pewnych korekt, ale nadal jest dość ograniczone. W szczególności nie możesz dowolnie modyfikować miejsca umieszczenia tekstu w przycisku i nie możesz mieć różnych kolorów dla wybranych / niezaznaczonych przycisków. Jeśli chcesz uzyskać bardziej szczegółowy układ tekstu, po prostu ustaw UITextAttributeTextColor
go na wyraźny i dodaj tekst do obrazów selected
i unselected
z części (2).