2013-02-22 86 views
2

這是一個很奇怪的問題。我有5個子視圖添加到UIViewController。其中一個需要被刪除,但是當我這樣做時,其餘4個子視圖中的一個也被刪除。這需要我使用addSubview重新添加它。這兩個觀點沒有任何關係。iOS:從超級視圖中刪除一個視圖會導致另一個視圖被刪除?

這是一個已知的iOS SDK錯誤?它確實發生在iOS 6.1的模擬器上。

謝謝。

+4

把你的代碼否則它不可能調試! – 2013-02-22 04:15:12

+0

你確定你沒有意外讓這個視圖消失,你正在刪除的視圖的子視圖? – rdelmar 2013-02-22 04:16:03

+0

您使用哪種方法刪除子視圖? – damithH 2013-02-22 04:17:01

回答

2

在這裏,你的問題沒有提及這種方法您使用刪除子視圖這些的話,我給你刪除子視圖簡單的建議。

給每個subView諸如此類,

self.subView1.tag = 1; 
self.subView2.tag = 2; 
. 
. 
. 
. 
self.subViewN.tag = N; 

,您可以訪問其Tag刪除)任何subView基地,諸如此類

[[self.view viewWithTag:1] removeFromSuperview]; 

這提示可能有幫助的Tag爲你。

2

您可以使用以下代碼刪除single subview

[subview_Name removeFromSuperview]; 

如果你想刪除all subviews形式的視圖然後使用這個。如果你想刪除all subview of particular class然後使用這個。

NSArray *subViewArray = [self.view subviews]; 
    for (id obj in subViewArray) 
    { 
    if([obj isKindOfClass:[classname class]]) 
     { 
      [obj removeFromSuperview]; 
     } 

    } 

例如:如果你想類remove subviewUIImageView然後用這個代替if條件。

[obj isKindOfClass:[UIImageView class]]