2013-08-07 2 views
0

배열을 기반으로하는 두 가지 구성 요소가있는 간단한 사용자 지정 선택보기를 설치하려고합니다. (성분 0에서 사용됨) 제 배열과 같이 정의된다 : (성분 1에서 사용)iOS 6.1 용 사용자 지정 선택보기

onesScore = [[NSMutableArray alloc]init]; 
[onesScore addObject:@"5"]; 
[onesScore addObject:@"6"]; 
[onesScore addObject:@"7"]; 
[onesScore addObject:@"8"]; 
[onesScore addObject:@"9"]; 

번째 배열과 같이 정의된다

tenthsScore = [[NSMutableArray alloc]init]; 
[tenthsScore addObject:@"0"]; 
[tenthsScore addObject:@"1"]; 
[tenthsScore addObject:@"2"]; 
[tenthsScore addObject:@"3"]; 
[tenthsScore addObject:@"4"]; 
[tenthsScore addObject:@"5"]; 
[tenthsScore addObject:@"6"]; 
[tenthsScore addObject:@"7"]; 
[tenthsScore addObject:@"8"]; 
[tenthsScore addObject:@"9"]; 

의 I는를 생성하기 위해 다음 코드를 사용하고 사용자 정의보기 : 피커의 UI가 제대로 위대하고 첫 번째 구성 요소의 부하를 작동

- (UIView *)pickerView:(UIPickerView *)picker viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view{ 
UILabel* retval = (id)view; 
if (!retval){ 
    retval= [[UILabel alloc] initWithFrame:CGRectMake(0.0f, 0.0f, [picker rowSizeForComponent:component].width, [picker rowSizeForComponent:component].height)]; 

    if (component == 0) 
    { 
     retval.text = [onesScore objectAtIndex:row]; 
    } 
    else if (component == 1) 
    { 
     retval.text = [tenthsScore objectAtIndex:row]; 
    } 

retval.font = [UIFont fontWithName:@"Helvetica" size:48]; 
retval.backgroundColor =[UIColor clearColor]; 
retval.textAlignment = NSTextAlignmentCenter; 
} 
return retval; 

} 

는 문제는 두 번째 구성 요소에 대해 내가 얻을 수 있습니다 :

,

0, 1, 2, 3, 4, 5, 0, 1, 2, 올바르게 전체 "tenthsScore"어레이를로드하지있어 3

. 나는 완전한 상실감에 처해있다.

아이디어가 있으십니까?

답변

1

앞으로는 코드의 형식을 올바르게 지정하십시오. 그렇게하면 우리가 더 쉽게 당신을 도울 수 있습니다.

어쨌든 라벨을 처음 만들 때 라벨의 text 만 설정하고 있습니다. 레이블을 재사용하는 경우 재사용 된 레이블을 변경하지 않고 반환합니다.

- (UIView *)pickerView:(UIPickerView *)picker viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view { 
    UILabel* retval = (id)view; 
    if (!retval){ 
     retval= [[UILabel alloc] initWithFrame:CGRectMake(0.0f, 0.0f, [picker rowSizeForComponent:component].width, [picker rowSizeForComponent:component].height)]; 
     retval.font = [UIFont fontWithName:@"Helvetica" size:48]; 
     retval.backgroundColor =[UIColor clearColor]; 
     retval.textAlignment = NSTextAlignmentCenter; 
    } 

    if (component == 0) { 
     retval.text = [onesScore objectAtIndex:row]; 
    } else if (component == 1) { 
     retval.text = [tenthsScore objectAtIndex:row]; 
    } 

    return retval; 
} 
+0

롭 ... 내가 놓친 간단한 수정! 형식 문제에 대해 사과드립니다. 도움에 감사드립니다! – SteveM