Я провел последние несколько часов, пытаясь сделать TabBar в UITabBarController полностью прозрачным (очистить фон). Я использую пользовательский подкласс UITabBarController, и мне удалось изменить tintColor, альфу, но цвет фона определенно остается тем, который определен в IB. Спасибо за помощь, я схожу с ума...
Как получить полностью прозрачный TabBar в UITabBarController
Ответы (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]];
надеюсь это поможет.:)