0

1 つのビューに 4 つの UIpickerviews があります。そして、それらすべてに 1 つの配列を設定したいと考えています。現時点では、ビューが表示されると、データを含む 1 つのピッカー ビューが表示されますが、他のビューは空です。2番目のスクロールを開始すると、データが入力され始めますが、最初のスクロールは空になり始めます。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 に答える