2

长期读者,第一次海报。请温柔点:P

我正在开发一个应用程序,并且有一个 UITabbar 元素的背景图像,该元素在顶部对几个像素是透明的。我进行了广泛搜索,尝试了许多我可以找到的解决方案(设置色调、背景颜色为 clearColor、将 alpha 设置为 0.2 等),但我继续看到标签栏应该透明的黑线。我将背景设置如下(请参阅注释掉的行以了解我尝试过的一些无效的事情)

//[[UITabBar appearance] setBackgroundColor:[UIColor clearColor]];
//[self.view setBackgroundColor:[UIColor clearColor]];
//[super.view setBackgroundColor:[UIColor clearColor]];
//UITabBar.super.setBackgroundColor:[UIColor clearColor]];
[[UITabBar appearance] setBackgroundColor:[[UIColor alloc] initWithRed:0 green:0 blue:0 alpha:0.2]];
//[[UITabBar appearance] setTintColor:[UIColor blackColor]];
[[UITabBar appearance] setTintColor:[[UIColor alloc] initWithRed:0 green:0 blue:0 alpha:0.1]];
//[[UITabBar appearance] setAlpha:0.0];// setTintColor:[UIColor magentaColor]];
[[UITabBar appearance] setBackgroundImage:[UIImage imageNamed:@"tabbar.png"]];

截图可以在http://i.imgur.com/m1tW5.png找到

  • 该应用程序使用标签栏控制器。
  • 当我将背景颜色设置为白色或任何其他颜色时,黑线会成功更改颜色,但一旦我将颜色设置为 clearColor,黑线就会回来。
  • 当我隐藏整个标签栏时,它背后没有什么疯狂的,我可以成功地看到我应该看到的奶油背景。
  • 该图像是具有透明顶部的 png,其中黑线出现如前所述。

有人对我可能做错的事情有任何建议吗?

帮助将不胜感激。

编辑:我使用的是 iOS 5.0,并不关心支持以前的 iOS 版本(以防打开任何额外的潜在选择)。

4

2 回答 2

2

我目前正在尝试解决类似的问题。

我相信黑色是:

  1. TabBars Superviews 背景在这种情况下,您可以尝试设置 tabBars superviews 背景颜色。我这里没有我的mac,所以我无法尝试,我在你的“尝试”代码中看不到它。

  2. 或者是tabBar的边框,在里面可以改变tabBar的frame的bordercolor。

    tabbar.frame.borderColor = [UIColor whiteColor];
    

您将需要导入 QuartzCore 框架来操作 boderColor。

让我知道它是否有帮助。

于 2012-10-09T14:31:19.523 回答
1

我决定采用我在其他地方遇到的“hack-ish”解决方案。

我在标签栏的背景图像区域使用与背景相同的颜色来创建透明的错觉。不是很透明,但这是我在花了无数小时后能想到的最好的。

也许这将是一个适用于未来类似职位的其他人的解决方案。

于 2012-10-25T22:42:43.837 回答