2013-11-27 12 views
6

2つのUIViewを使用してxibファイル内の異なるオブジェクトを描画しています。いくつかのアクションのために新しいオブジェクトを描画する前に、ビューをクリアする必要があります。UIViewからすべてのオブジェクトを削除します

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

をしかし、私はアクションごとに描画されている複数のアクションと、複数の種類のオブジェクトを持っている場合、それはこのタイプを使用するには、悪いコーディングになります:最初はオブジェクトの種類の数が小さいとき、私はこれを使用していますメソッドの。これを行うための効率的な方法がいくつかありますか?

+1

からすべてのオブジェクトを削除{[ビューremoveFromSuperView]}' – Dinesh

+0

は、なぜあなたは**、感じるんが悪いに見えますこのタイプを使用するためのコーディング**? –

答えて

15

これは、クラスに関係なく、すべてのサブビューを削除するために使用してください。

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

Swift版を提供することができますか?または、私は以下を使用します:self.view.subviewsのサブビュー{ subView.removeFromSuperview() } –

0

使用このためには、(yourView.subviewsでのUIView *ビュー)のために `UIViewの

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

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

      } 
関連する問題