Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 为UITabBar添加颜色-非常非常奇怪的Bug?_Iphone_Objective C_Cocoa Touch_Uitabbarcontroller_Uicolor - Fatal编程技术网

Iphone 为UITabBar添加颜色-非常非常奇怪的Bug?

Iphone 为UITabBar添加颜色-非常非常奇怪的Bug?,iphone,objective-c,cocoa-touch,uitabbarcontroller,uicolor,Iphone,Objective C,Cocoa Touch,Uitabbarcontroller,Uicolor,所以 我正在子类化我的uitabarcontroller,并将绿色添加到我的uitabar - (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

所以

我正在子类化我的
uitabarcontroller
,并将绿色添加到我的
uitabar

- (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]它可以工作。。并且整个选项卡栏中会添加一个绿色

我使用
ios5sdk
在iPhone模拟器上工作,它工作正常,我能够选择所有选项卡。 但是当我在ios4.2(真正的iPhone)上尝试这段代码时,第一个选项卡是可见的。。但对触摸没有反应

原因很清楚,这是因为添加了
绿色
@index==1的
子视图

但是如果我更改为
[[self tabBar]insertSubview:v atIndex:0]我的第一个选项卡是可选择的,但是
选项卡栏
不会变成绿色

敬请告知

谢谢


编辑:

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


现在。。。。去开发者论坛!!!:)

您可能希望为此创建一个自定义控件,该控件不属于uitabarcontroller的子类。从文档中可以看出,“您不应该直接访问选项卡栏控制器的选项卡栏视图。”

视图层和层次结构是非公共API的一部分,在不同版本的iOS中可能会发生更改