2016-02-23 77 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; 
相关问题