2013-08-27 3 views
1

NSMutableArray에서 라벨을 동적으로 생성합니다. 라벨을 만드는 동안 각 라벨에 대해 태그를 설정했습니다. 나는 하나의 NSMutableArraywordArray라는 있습니다. 지금, 나는 내 문자열 wordArray 또는 사용할 수 없습니다 확인하려면, 나는 사용하여이 문제를 확인할 수 있습니다iPhone에서 UILabel 태그를 얻는 방법

[wordArray containsObject:wordStr]; 

을 동적으로 레이블을 만드는 경우 :

UILabel *wordLabl; 
int tagValue3 = 1; 
for (int iloop = 0; iloop < [wordArray count]; iloop++) 
{ 

    wordLabl = [self addwordLabelRect:CGRectMake(80 * iloop + 20, 420 , 100,  20)andTag:tagValue3];//30 + 35 30 * iloop+ 
    [self.view addSubview:wordLabl]; 
    tagValue3 += 1; 
} 

-(UILabel *)addwordLabelRect:(CGRect)rect andTag:(int)integerValue 
{ 
wordLabel = [[UILabel alloc] init]; 
wordLabel.frame = rect; 
wordLabel.userInteractionEnabled = YES; 
wordLabel.tag = integerValue; 
wordLabel.backgroundColor = [UIColor clearColor]; 
wordLabel.font = [UIFont systemFontOfSize:15]; 
wordLabel.text = [NSString stringWithFormat:@"%@",[wordArray objectAtIndex:integerValue - 1]]; 
wordLabel.textAlignment = NSTextAlignmentCenter; 
wordLabel.textColor = [UIColor whiteColor]; 

return wordLabel; 
} 

를 내가 라벨과 태그를 생성하고 위의 코드를 사용하여 . 그러나 wordArray에 문자열이 포함되어있는 경우 해당 레이블 textColor을 변경하고 싶습니다.이 작업은 Tag를 사용하여 수행 할 수 있다고 생각하지만 어떻게 레이블 값을 가져올 수 있습니까?

+0

당신이 할 수있는 것은 저장소입니다 해당 레이블은 배열에 태그를 지정한 다음 해당 태그를 기반으로 레이블을 가져옵니다. 당신은 쉽게 내 친구가 될 수 있습니다 .... – NiravPatel

+0

'NSMutableArray'에 생성 된'UILabels'을 저장합니까? 코드 표시 –

+0

코드를 제공하면 정확한 해결책을 제공하는 데 도움이됩니다 –

답변

0

태그를 설정하는 것과 같은 작업을하고 계신 것 같습니까?

for (NSUInteger i = 0; i < [wordArray count]; ++i) { 
    UILabel * label; 
    // setup your label... 
    [label setTag:i]; 
    [yourView addSubview:label]; 
} 

그래서, 그냥 수행

NSUInteger index = [wordArray indexOfObject:wordStr]; 
if (index != NSNotFound) { 
    UILabel * label = [yourView viewWithTag:index]; 
    // do whatever you want with your label 
} 

행운을 빕니다.

+0

'yourView'에 같은 태그를 가진 여러 객체가 있다면? 어느 것이 반환됩니까? 반환되는 뷰가 'UILabel'이 아닌 경우 코드에서 어떻게 처리합니까? – Popeye

0

UILabel을 태그에서 가져 오려면 여기를 클릭하십시오. 당신은

int i=0; 
for (NSObject *view in self.View.subviews) 
{ 
    if ([view isKindOfClass:[UILabel class]]) 
    { 
     label = (UILabel *)[[self view] viewWithTag:wordArray[i]]; 
     NSLog(@"%@",label.text); 
     //here you get your label 
    } 
    i++; 
} 
1

가 미안 해요, 난 당신의 코드를 간과 ... 당신은 당신이 당신의 적절한 라벨에 액세스하려면 다음 줄을 추가 할 필요가 루프를 다음 사용할 수 있습니다

if([wordArray containsObject:wordStr]) 
{ 
UILabel *label = (UILabel *) [self.view viewWithTag:([wordArray indexOfObject:wordStr] - 1)];//since u started tag assignment from 1 
label.textcolor = [UIColor yellowColor]; 
} 
관련 문제