Как получить полностью прозрачный TabBar в UITabBarController

Я провел последние несколько часов, пытаясь сделать TabBar в UITabBarController полностью прозрачным (очистить фон). Я использую пользовательский подкласс UITabBarController, и мне удалось изменить tintColor, альфу, но цвет фона определенно остается тем, который определен в IB. Спасибо за помощь, я схожу с ума...


person jcr    schedule 23.08.2013    source источник
comment
На самом деле не работает...   -  person jcr    schedule 24.08.2013
comment
Просто отредактировал мой ответ другим решением. Посмотрите, сработает ли это для вас. :)   -  person Adrian P    schedule 24.08.2013
comment
как и обещал, я только что добавил строку кода, необходимую для изменения цвета фона панели вкладок в последней версии iOS.   -  person Adrian P    schedule 25.08.2013


Ответы (1)


Вот один из способов добиться этого.

CGRect frame = CGRectMake(0.0, 0.0, 320, 48);//Setting a Frame.

myTabView = [[UIView alloc] initWithFrame:frame];//Making Tab View

// not supported on iOS4    
UITabBar *tabBarr = [self.tabBar tabBar];
if ([tabBarr respondsToSelector:@selector(setBackgroundImage:)])
{
    // set it just for this instance
    [tabBarr setBackgroundImage:[UIImage imageNamed:@"hot-1.png"]];


    // set for all
    // [[UITabBar appearance] setBackgroundImage: ...
}
else
{
    // ios 4 code here
    //[tabBarr setBackgroundColor:c];
}

//[myTabView  setBackgroundColor:c];//Setting Color Of TaBar.

[myTabView  setAlpha:0.8];//Setting Alpha of TabView.

[[self.tabBar tabBar] insertSubview:myTabView  atIndex:0];//Inserting Tab As SubView.

И вот ссылка на учебник, который мне показался очень полезным по изменению фона панели вкладок. Вы можете поиграть с кодом и настроить его по своему вкусу.

http://ios-blog.co.uk/tutorials/how-to-customize-the-tab-bar-using-ios-5-appearance-api/

Редактировать:

Что касается установки цвета фона панели вкладок на прозрачный или чистый цвет, у вас есть два способа. Один из них — это изображение, которое я объяснил, и оно вам не понравилось. Другой — установить фон панели вкладок в ее верхнем представлении. Что-то из следующей строки.

tabBar.superview.backgroundColor = [UIColor clearColor];

Таким образом, вы достигаете панели вкладок и меняете этот черный фон на все, что хотите.

Редактировать 1:

извините за задержку с добавлением решения для ios 7. Ниже приведен метод, который вам нужен, чтобы изменить цвет фона панели вкладок в ios 7.

просто добавьте следующую строку кода в свой метод ViewDidLoad, и он сделает волшебство.

[self.tabBarController.tabBar setBackgroundColor:[UIColor greenColor]];

надеюсь это поможет.:)

person Adrian P    schedule 24.08.2013
comment
Спасибо. Это работает, если вы хотите иметь фон на основе изображения. Я пробовал [[внешний вид UITabBar] setColor: [UIColor clearColor]], безуспешно... - person jcr; 24.08.2013
comment
@jcr, проверьте раздел редактирования моего ответа. - person Adrian P; 24.08.2013
comment
Хм.. Проведя немного больше времени в Интернете, кажется, что в ios7 все немного изменилось в отношении цвета navBar, tabBar и т. д. Но я не уверен, что могу объяснить здесь что. В любом случае, спасибо за ваш ответ, который должен работать в ios6. - person jcr; 24.08.2013
comment
@jcr, я не знал, что вы ищете решение для iOS 7. Я предоставил ответы, связанные с вопросом и тегами. Если вам нужно решение для ios7, дайте мне знать. - person Adrian P; 24.08.2013
comment
Я не уточнил это, так как сейчас нельзя говорить о ios7... Но если у вас есть решение, я был бы более чем счастлив! :) - person jcr; 24.08.2013
comment
@jcr, я буду. Как только я вернусь домой к своему Mac. Но я считаю, что в отношении вопроса мой ответ был правильным. Не так ли? - person Adrian P; 24.08.2013