ダブルピッカーと、ピッカーの各コンポーネントがどの行にあるかを更新する2つのNSInteger変数があります。iPhoneシミュレーター(実際のiPhoneでテストしていません)では、行を選択すると(つまり、下または上をクリックすると)番号は問題ありませんが、スピンすると、通常は実際の行番号から数つ離れた行番号が表示されます。これが私が持っているものです:
- (UIView *)pickerView:(UIPickerView *)pickerView
viewForRow:(NSInteger)row
forComponent:(NSInteger)component reusingView:(UIView *)view {
if (component == kSuitComponent) {
UIImage *image = self.suitImages[row];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
[self theSuitRow];
return imageView;
}
else {
NSString *text = self.cardNumber[row];
UILabel *label = [[UILabel alloc] init];
[self getCardRow];
label.text = text;
return label;
}
}
-(void) getCardRow {
cardRow = [_doublePicker selectedRowInComponent:kCardNumberComponent];
}
-(void) theSuitRow {
suitRow = [_doublePicker selectedRowInComponent:kSuitComponent];
}