2011-06-14 2 views
0

예 :지역 변수 addSubView이 방법의 addLabel 경우

- (void)addLabel { 
    for (NSInteger i = 0; i < 5; i ++) { 
     UILabel *label = [[UILabel alloc] init]; 
     [label setText:@"label"]; 
     [[self view] addSubView:label]; 
     [label release]; 
    } 
} 

와 버튼이 발사 될 때마다 해당 메서드가 호출됩니다. addSubview 전에 다시 subviews (removeFromSuperView :)에서 모든 레이블을 제거해야합니까?

답변

0

먼저 UILabel에 약간의 좌표를 부여해야합니다. 그래서, 그것은 적절한 장소에 표시 할 수 있습니다.

해당 행에 대해 다음을 사용할 수

UILabel의 lblTaskTitle * = [UILabel의 ALLOC] initWithFrame : CGRectMake (45.0, 5, 200.0, 35.0)];

또 다른 것은 다른 레이블을 제거하면 더 좋을 것입니다. (꼭 필요한 것은 아니지만 좋은 습관입니다.)

당신은 다음과 같은 방법으로 작업을 수행 할 수 있습니다

UILabel *lbl = nil; 

    NSArray *Arraylbl = [self.view subviews]; 
    for (lbl in Arraylbl){ 
     if ([lbl isKindOfClass:[UILabel class]]){ 
      [lbl removeFromSuperview]; 
     } 
    } 

이 당신을 위해 잘 될 것입니다 바랍니다.

어려움이 있으시면 알려주세요.

+0

[self.view 하위보기]에 레이블이 없습니다. NSLog에서 확인했습니다. – Lunayo

+0

위의 함수를 호출하면 레이블이 있으면 제거됩니다. 그렇지 않으면 문제가 없습니다. 너에게 어려움이 있으면 알려줘. –

0

예, 수퍼 뷰에서 이전 레이블을 모두 제거해야합니다. 그렇지 않으면 레이블이 모두 기존의 이전 레이블 위에 추가되어 새로운 레이블을 이해할 수 없게됩니다.