2016-02-23 108 views
-1

我每次單擊按鈕時都會創建一個UIView,但問題是所有其他視圖都不會被刪除。 它增加內存的應用程序如何刪除當前視圖以外的所有子視圖

+2

的可能的複製【什麼是刪除所有子視圖從您self.view的最佳方式?](http://stackoverflow.com/questions/11889243/what-is-the-best-way-to -remove-all-subviews-from-your-self-view) –

+0

NSArray * allSubviews = [self.reletedViewOffer subviews];如果([view isMemberOfClass:[UIButton class]]) { {view removeFromSuperview]; } } –

回答

0

的試試這個:

分配一個標籤(可能是100)的按鈕。

NSArray *subviews = self.view.subviews; 

for(UIView *subview in subviews) { 
    if(subview.tag != 100) { 
    [view removeFromSuperview]; 
    } 
} 
2

您可以爲UIView對象設置標籤。

UIView *view = [[UIView alloc] initWithFrame:CGRectZero]; 
view.tag = 2016; 
[self addSubview:view]; 

然後,您可以在以後使用此代碼刪除:

UIView *view = [self viewWithTag:2016]; 
[view removeFromSuperview]; 

您也可以保持對它的引用與屬性的UIView對象。

@property (nonatomic, strong) UIView *view; 

所以你可以很容易地刪除它。

如果你的觀點不被別的

例如保留它被稱爲只有在情況後

0

-removeFromSuperview方法釋放內存

只需除去從上海華視圖可能不足以釋放它可以具有視圖,其具有一出口連接&它聲明的屬性與保留或強屬性,所以在這種情況下,它將被控制器保留的,當它被從nib文件加載,您可能需要釋放該視圖。

[yourView removeFromSuperview]; 
self.yourView = nil; 
相關問題