it-swarm.com.ru

как изменить цвет значка панели вкладок в IOS

Моя текущая панель вкладок выглядит следующим образом:

enter image description here

Мой код выглядит следующим образом:

-(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;
}

Что я хочу сделать, это:

Обычная вкладка:заголовок вкладки должен быть черным, но только значок должен быть черным. Ожидаемая вкладка должна выглядеть так:

enter image description here

Выбранная вкладка:название вкладки должно быть красным, но только значок должен быть красным. Ожидаемая вкладка должна выглядеть так:

enter image description here

цвет панели вкладок : сделать весь цвет tabBar более прозрачным с тем же цветом

Кто-нибудь может помочь сделать это?

7
Lasang

Это выполняет то, что вы просите:

[[UITabBar appearance] setSelectedImageTintColor:[UIColor redColor]];
[[UITabBar appearance] setAlpha:0.25];
22
michaelsnowden

В Swift на iOS8 это будет:

UITabBar.appearance().tintColor = UIColor.redColor()
4
Rags93

Ответы здесь не совсем то, что я искал. Это имеет смысл, если вам нужно общее изменение цвета всех контроллеров панели вкладок в вашем приложении, но на самом деле вы не обязательно хотите вносить такие глобальные изменения (не говоря уже о том, что это может быть трудно отладить и найти позже). ). Лучше быть более сфокусированным, поэтому вы хотите изменить цвет напрямую.

Начиная с iOS 8, вам нужно изменить свойство tintColor панели вкладок. Надеюсь, вы подклассифицируете свое UITabBarController. Если да, вы можете установить цвет в viewDidLoad:

- (void)viewDidLoad {
    [super viewDidLoad];

    self.tabBar.tintColor = [UIColor grayColor];
}
2
mikeho