0

我在一个视图中有 4 个 UIpickerviews。我想用一个数组填充所有这些。目前,当视图出现时,它会显示一个带有数据的选择器视图,但其他的都是空的。当我开始滚动第二个时,它开始填充,但第一个开始变空。我正在使用填充 UIPickerVIew 的常用方法。

4

1 回答 1

0

作为回答您问题的开始,您必须为 UIPickerViewDataSource 实现委托例程。

-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
    return 4;
}

您的代码中可能已经有了上述例程!!!

接下来,您将必须实现以下内容:

-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
    switch(component){
        case 0:
            // return X based upon how many for the left-most column
        case 1:
            // return X based upon how many for the second left-most column
        case 2:
            // return X based upon how many for the third left-most column
        default:  // Serves as 4
            // return X based upon how many for the right-most column        
    }
}

或者在上面的例程中它可以简单地(如果您要填充的数据是每列的 n,因此您的数组大小应该是 n * 4)

[myArray count];  //  Where myArray is replaced with you array variable name

最后实现:

-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{

    // Assuming your array is filled with strings only
    int index = [myArray count] / 4 * component + row;
    return [myArray objectAtIndex:index];
}

这是假设您的数组看起来像

[1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4]

其中数字代表数据属于哪一列,而不是数据本身

于 2012-06-29T13:08:53.640 回答