![見出し画像](https://assets.st-note.com/production/uploads/images/10090455/rectangle_large_type_2_497e1572cfea8c8da2957c0a14b58c47.jpeg?width=1200)
【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];
}
}