2010-10-27 77 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的子視圖。視圖一次只能是一個視圖的子視圖,所以第一個視圖是多餘的。