본문 바로가기
Programming/iOS

UIView에서 Subview 지우기

by 신규하 2011. 4. 25.

아이폰 프로그램을 사용하면서 가장 자주 쓰게 되는 view에서 subview를 지우는 방법을 간단하게 정리해 봅니다.


먼저 샘플로 라벨을 올려 봅니다.
// UILabel 생성하기
UILabel *aLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 15, 40, 20)];
// label에 태그 넣기
aLabel.tag = 1;
// 글자쓰기
aLabel.text = @"Hello World";
// 라벨을 뷰에 올리기
[self.view addSubview:aLabel];

하위에 있는 뷰 모두 지우기 1

// With some valid UIView *view:
for(UIView *subview in [self.view subviews])
{
    [subview removeFromSuperview];
}


하위에 있는 뷰 모두 지우기 2
while ([self.view.subviews count] > 0)
{
    [[[self.view subviews] objectAtIndex:0] removeFromSuperview];
}


지정한 태그의 subview 지우기
[[self.view viewWithTag:1] removeFromSuperview];


지정 태그 이외의 subview 지우기
for (UIView *subview in [self.view subviews])
{
    if (subview.tag != 1) {
        [subview removeFromSuperview];
    }
}


특정 클래스의 subview 지우기
for(UIView *subview in [self.view subviews])
{
    if([subview isKindOfClass:[UILabel class]])
    {
        [subview removeFromSuperview];
    }
}




댓글