2

我花了过去几个小时试图让 UITabBarController 中的 TabBar 完全透明(背景清晰)。我使用了 UITabBarController 的自定义子类,并设法更改了 tintColor、alpha,但背景颜色肯定仍然是 IB 中定义的颜色。谢谢你的帮助,我快疯了……

4

1 回答 1

0

这是实现这一目标的一种方法。

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]];

希望这可以帮助。:)

于 2013-08-24T03:10:24.783 回答