2013-11-27 58 views
6

我正在使用2 UIView在xib文件中绘制不同的对象。在为某些操作绘制新对象之前,需要清除视图。最初,当对象类型是一些较小的,我一直用这个:从UIView中删除所有对象

for (UILabel *btn in self.contentView.subviews) 
{    
    if([btn isKindOfClass:[UILabel class]]) 
    { 
     [btn removeFromSuperview]; 
    }   
} 

但是,当我有多个动作和多种类型的对象要绘制的每个动作,它看起来坏的编码使用这种类型的的方法。有没有一些有效的方法来做到这一点?

+1

'为(UIView的*在yourView.subviews视图){[查看removeFromSuperView]}' – Dinesh

+0

为什么你觉得,**的日子也不好过编码使用这种类型**? –

回答

15

您应该使用它来删除所有子视图,而不管它们的类。

[self.contentView.subviews makeObjectsPerformSelector: @selector(removeFromSuperview)]; 
+0

您能否为此提供Swift版本,或者我应该使用: for subView in self.view.subviews { subView.removeFromSuperview() } –

0

用这个从一个UIView中删除所有对象

NSArray *arr=view.subviews; //Your Vies's object.subviews 

      for (UIView *view1 in arr) 
      { 
       [view1 removeFromSuperview]; 

      }