Uipickerview iOS 6.1的自定义选择器视图

Uipickerview iOS 6.1的自定义选择器视图,uipickerview,Uipickerview,我正在尝试设置一个简单的自定义选择器视图,它有两个基于数组的组件。第一个数组(在组件0中使用)定义为: onesScore = [[NSMutableArray alloc]init]; [onesScore addObject:@"5"]; [onesScore addObject:@"6"]; [onesScore addObject:@"7"]; [onesScore addObject:@"8"]; [onesScore addObject:@"9"]; tenthsScore = [

我正在尝试设置一个简单的自定义选择器视图,它有两个基于数组的组件。第一个数组(在组件0中使用)定义为:

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"];
第二个数组(用于组件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"];
我正在使用以下代码创建自定义视图:

 - (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;

}
选择器的UI工作良好,第一个组件加载正确,问题是我得到的第二个组件:

0,1,2,3,4,5,0,1,2,3

它没有正确加载完整的“核心”阵列。我完全不知所措


有什么想法吗

今后,请努力正确格式化代码。这样做会使我们更容易帮助您

无论如何,在第一次创建标签时,只需设置标签的
文本。在重用标签的情况下,只需返回未更改的重用标签

- (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;
}

谢谢你,罗布…我错过的简单修复!很抱歉格式化问题。我感谢你的帮助!