2014-07-02 14 views
7

thanh tab hiện tại của tôi trông như sau:làm thế nào để thay đổi TabBar màu biểu tượng trong ios

enter image description here

Mã của tôi là như sau:

-(void)startTabBar{ 
    self.tabBarController = [[UITabBarController alloc] init]; 
    TAB_1 *tab_1 = [[TAB_1 alloc]init]; 
    TAB_2 *tab_2 = [[TAB_2 alloc]init]; 
    TAB_3 *tab_3 = [[TAB_3 alloc]init]; 

    [[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIColor blackColor], NSForegroundColorAttributeName, nil] forState:UIControlStateNormal]; 
    [[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor redColor], NSForegroundColorAttributeName,nil] forState:UIControlStateSelected]; 

    NSArray* controllers = [NSArray arrayWithObjects:tab_1,tab_2, tab_3, nil]; 

    self.tabBarController.viewControllers = controllers; 
    self.window.rootViewController = self.tabBarController; 
} 

gì tôi muốn làm là:

Tab thông thường: tiêu đề của tab phải có màu đen vì nó là nhưng chỉ hình ảnh biểu tượng phải có màu đen. tab Dự kiến ​​nên được như thế: Tab

enter image description here

chọn: tiêu đề của tab nên có màu đỏ vì nó là nhưng chỉ hình ảnh biểu tượng nên có màu đỏ. tab Dự kiến ​​nên được như thế:

enter image description here

tab thanh màu: làm cho toàn bộ màu TabBar minh bạch hơn với cùng một màu

thể bất cứ ai giúp đỡ để làm điều này?

+0

kiểm tra câu trả lời này http://stackoverflow.com/a/18742880/1679187 –

+0

@YogeshSuthar Đó trả lời là bị phản đối – michaelsnowden

Trả lời

21

này hoàn thành những gì bạn đang yêu cầu cho:

[[UITabBar appearance] setSelectedImageTintColor:[UIColor redColor]]; 
[[UITabBar appearance] setAlpha:0.25]; 
+0

có, bạn là đúng và nó đặt minh bạch cho tabbar. Bên cạnh đó, tôi đã phải bỏ ghi chú // [[self tabBarItem] setImage: [[UIImage imageNamed: @ "icon_feed.png"] imageWithRenderingMode: UIImageRenderingModeAlwaysOriginal]]; trong phương thức initwithinib ở mỗi lớp tab – Lasang

+0

Cảm ơn bạn. Nó hoạt động. – Raja

4

Trong Swift trên iOS8 nó sẽ là:

UITabBar.appearance().tintColor = UIColor.redColor() 
1

Những câu trả lời ở đây là không hoàn toàn những gì tôi đang tìm kiếm. Nó có ý nghĩa nếu bạn muốn thay đổi chung về màu của tất cả các bộ điều khiển thanh tab trong ứng dụng của bạn, nhưng thực tế, bạn không nhất thiết muốn thực hiện thay đổi toàn cầu như vậy (chưa kể rằng có thể khó gỡ lỗi và tìm sau này). Tốt hơn là nên tập trung hơn, vì vậy bạn muốn thay đổi màu sắc trực tiếp.

Kể từ iOS 8, bạn cần thay đổi thuộc tính tintColor của thanh tab. Hy vọng rằng, bạn đang phân lớp số UITabBarController của mình. Nếu bạn đang có, bạn có thể thiết lập các màu sắc trong viewDidLoad:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    self.tabBar.tintColor = [UIColor grayColor]; 
} 
Các vấn đề liên quan