2012-08-14 56 views
0

當前我正在使用以下行將方法的視圖作爲子視圖添加到方法內的另一個視圖。從另一種方法隱藏子視圖

[self.landscape addSubview:[self makeSpin]];

這種運作良好,而且都是花花公子,但現在我需要知道如何將其隱藏。

顯然[self.landscape setHidden:[self makeSpin]];並沒有辦法。
任何人都可以提供一個關於如何做到這一點的快速樣本?甚至在正確的方向上的一個點將有所幫助。

在此先感謝。

回答

1

我假設makeSpin返回的視圖是一個實例變量(如果不是,你不知何故必須使它成爲一個實例變量或使用標籤)。如果是這樣,試試這個:

[self makeSpin].hidden = YES; 
0

如果makeSpin返回沒有被分配到一個實例變量的自動釋放的觀點,那麼你不會有任何訪問以外試圖找到它在self.landscape的子視圖數組。到目前爲止,要做的最簡單的事情就是在你的課堂上創建一個屬性,並使用它來保存新子視圖的價值,以便以後再玩。你只需要記住在你的viewDidUnload方法中將它設置爲nil。

1

如果[self makeSpin]返回同一個對象(不創建並返回新的觀點,而不是一個自動發佈視圖),那麼你可以刪除的觀點一樣,所有的時間:

[[self makeSpin] removeFromSuperView];

其他你需要一個標籤添加到子視圖(查看從

[self makeSpin]). 

象凱旋:

UIView *tempView = [[self makeSpin] retain]; 
tempView.tag = 7; 
[self.landscape addSubview:tempView]; 
[tempView release]; 

對於消除,你需要寫這樣的觀點:

[[self.landscape viewWithTag:7] removeFromSuperview]; 

你也可以使用這個循環,

for (UIView *subview in [self.landscape subviews]) 
{ 
    if (subview.tag == 7) 
    { 
     [subview removeFromSuperview]; 
    } 
} 
相關問題