为UITabBar添加颜色 - 非常奇怪的错误?

时间:2011-08-18 18:49:45

标签: iphone objective-c cocoa-touch uitabbarcontroller uicolor

所以,

我正在为我的UITabBarController创建子类,并将颜色绿色添加到我的UITabBar

- (void)viewDidLoad {

    CGRect frame = CGRectMake(0.0, 0.0, self.view.bounds.size.width, 48);
    UIView *v = [[UIView alloc] initWithFrame:frame];
    v.backgroundColor = [UIColor greenColor];
    [v setAlpha:0.35];
    [[self tabBar] insertSubview:v atIndex:0];
    [v release];

    [super viewDidLoad];
}

这不起作用。

但是,如果我尝试[[self tabBar] insertSubview:v atIndex:1];它可以工作..并且整个TabBar都会添加绿色!!

我使用ios5 SDK在iPhone模拟器上工作,它运行正常,我可以选择所有标签。 但是当我在ios4.2(真正的iPhone)上试用这个代码时,第一个标签是可见的......但是没有回应接触

原因很明显,原因是添加SubView greenColor @ index == 1;

但如果我改为[[self tabBar] insertSubview:v atIndex:0];我的firstTab可以选择,但tabBar只是没有变成绿色!!

请告知!!

感谢。


修改

因此问题与iOS5及早期版本有关。一旦iOS 5发布,我将编辑答案并放回原始答案。

现在......关闭开发者论坛!!! :)

1 个答案:

答案 0 :(得分:0)

您可能希望为此创建一个不包含UITabBarController的自定义控件。从文档中,“您永远不应直接访问标签栏控制器的标签栏视图。”

非公开API的视图图层和层次结构部分,并且可能会在不同版本的iOS上进行更改。