2012-11-19 3 views
-1

Apple 사양에 따라 IB 객체는 Storyboard/Xib를 사용하여 정의됩니다. 일부 프로젝트의 경우 UILabels, UIButtons 등의 긴 목록을 정의 할 수 있습니다. IBOutlet을 사용하여 코드에 연결해야하는 항목.여러 UI 객체 처리

예 :

@property (nonatomic, retain) IBOutlet UILabel *label1; 
@property (nonatomic, retain) IBOutlet UILabel *label2; 
... 
@property (nonatomic, retain) IBOutlet UILabel *label998; 
@property (nonatomic, retain) IBOutlet UILabel *label999; 

소스 코드에 UILabel의 (또는있는 UIButton 또는있는 UIImage 등)을 식별하고 컨텐츠 개체의/속성을 변경하려면 그것을 사용하는 방법이 있나요?

예 의사 코드 : 위의 코드에서

for (i=0;i<100;i++) { 
     <label i>.text = @"..."; 
} 

, 나는 모든 레이블에 문자열 값을 할당 할. 어떻게 이것을 할 수 있습니까? 대신 레이블을 식별하는 방법.

+0

이 라벨로 정확히 무엇을하고 싶은지 설명해 주시겠습니까? 다른 문자열을 다른 레이블에로드하려는 경우 또는 모든 레이블의 이름을 기억하지 않고 레이블에 대한 액세스 만 원하는 경우. –

+0

.m 파일의 IBOutlet 객체 (.h 파일에 정의 됨)에 액세스하려고합니다. 함수 나 루프에서 사용하는 것. – Vincent

답변

2

Interface Builder에서 UILabels의 태그를 설정할 수 있으며 나중에 태그로 식별 할 수 있습니다. 예를 들어 런타임에 레이블을 얻기 위해이 코드를 사용할 수 있습니다 나중에에 당신의 1000 개 레이블 1001 년부터 2000 년까지 태그를 설정할 수 있습니다 : -

for (NSInteger iTag= 1001; iTag<2001; iTag++) 
{ 
    UILabel *lblTest = (UILabel *)[self.view viewWithTag:iTag]; 
    lblTest.text = @"...."; 
} 

을 이런 식으로 첫 번째 레이블 태그를해야합니다 1001 마지막 레이블에는 태그 2000이 있으며 함수 또는 루프에서이 레이블을 사용할 수 있습니다.

+0

내가 뭘 찾고 있었는지, 고마워. – Vincent