見出し画像

【Objective-C】UIScrollView などにsubViewされたViewを全て削除する方法【Xcode10.1】

こういう人に向けて発信しています。
・UIButtonなどを生成し、scrollViewにaddSubViewしたオブジェクトを削除したい人
・UIviewを削除したい人
・Objective-C初心者

私はこういう時困りました。

_recentScrollBar = [[UIScrollView alloc] initWithFrame:CGRectMake(24.0f, 0.0f, self.view.bounds.size.width -48.0f, 24.0f)];
UIButton *button = [[UIButton alloc] init];
[_recentScrollBar addSubview:button];

このようにbuttonをaddSubviewしていたのですが、
ログアウトしてログインした時に再度ButtonがaddSubViewされていて、
スクロールバーの上に何重にも重なっている事象がありました。

その際は上記buttonを配列に追加していたので、
Arrayが初期化されているかどうかで判定して、
既に初期化済み(Button描画済みと判定)だったら、
今回紹介する方法でUIScrollViewから全件Viewを削除しました。

Code:Objective-C

   if(!_scrollBtnArray){
        _scrollBtnArray = [NSMutableArray array];
        for(UIView *view in [_ScrollView subviews]){
            [view removeFromSuperview];
        }
    }

この記事が気に入ったらサポートをしてみませんか?