2010-10-27 62 views
0

我想在UIView中添加我的按钮,就像我可以隐藏或不是它们一样。在UIView中添加UIStuff

我的按钮的代码:

carte1J1=[UIButton buttonWithType:UIButtonTypeCustom]; 
    carte1J1.tag=11; 
    carte1J1.frame=CGRectMake(60, 240, 50, 73.0); 
    [carte1J1 setImage:[UIImage imageNamed:[NSString stringWithFormat:@"%@",imagecarte1] ] forState:UIControlStateNormal] ; 
    [carte1J1 addTarget:self action:@selector (clicCarte1J1) forControlEvents:UIControlEventTouchUpInside]; 
     [self.view insertSubview:carte1J1 atIndex:1]; 

我的看法是viewJoueur1,我尝试添加像这样的观点我的按钮。

[viewJoueur1 addSubview:carte1J1]; 

,并测试我试图隐藏viewJoueur1:

viewJoueur1.hidden=YES; 

但按钮仍是可见的,我不明白为什么

回答

0

在你上市代码的第一部分,你必须:

[self.view insertSubview:carte1J1 atIndex:1]; 

在第二部分中,您有:

[viewJoueur1 addSubview:carte1J1]; 

所以,你已经加入到cartelJ1如果两种观点我正确理解。

然后,您隐藏其中一个视图,但self.view仍然可见,并且它包含cartelJ1,因此cartelJ1仍然可见。

如果我误解了你的代码,请纠正我的错误...

0

你说得对,这不是documented行为:

隐藏与子视图的视图具有隐藏那些子视图的 效果和 他们可能拥有的任何视图后代。

您正在添加carte1J1作为viewJoueur1的子视图;是viewJoueur1一个普通的UIView还是一个自定义的子类?如果它是一个子类,是否覆盖了-setHidden:

如果这是一个标准的UIView,那么这种行为不是如文件记录,你应该report it as a bug

我注意到的一件事是,当您创建按钮时,将其添加为self.view的子视图,然后将其添加为viewJoueur1的子视图。视图一次只能是一个视图的子视图,所以第一个视图是多余的。