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中可能会发生更改