おとうさまくんの手作り工房

日曜大工としてのプログラミングを紹介します。

【iOS備忘録】画面にある全てのUIViewを選ぶsubviews

画面上に配置したUIView(もしくはその派生クラス)をすべて一度に操作する方法

まず、画面に何かを配置しておきます。

    [self.view addSubview:object];

 

それらobjectの一つ一つをすべて削除したり書き換えたり移動したりと、一連の動きを与えます。使うのはsubviewsです。

 

    //画面上にあるUIViewやUILabelなどすべて消去

    for (UIView *v in self.view.subviews) {

        [v removeFromSuperview];

    }

 

 

    //(100,100)より右下にあるUIViewやUILabelなどすべて消去

    for (UIView *v in self.view.subviews) {

        if (v.center.x>100 && v.center.y>100) {

            [v removeFromSuperview];

        }

    }

 

    //UILabelインスタンスをすべて右下に移動

    for (UIView *v in self.view.subviews) {

        if ([v isMemberOfClass:[UILabel class]]) {

            v.center = CGPointMake(v.center.x+100, v.center.y+100);

        }

    }

 

ちなみに、isMenberOfClassでインスタンスがどのクラスに属するかを特定できます。

が、インスタンス v がUILabelから派生するクラスに属するかどうかまではチェックしてくれません。これをするのはisKindOfClassです。

        if ([v isKindOfClass:[UILabel class]]) {・・・