配列に基づく 2 つのコンポーネントを持つ単純なカスタム ピッカー ビューをセットアップしようとしています。最初の配列 (コンポーネント 0 で使用) は次のように定義されます。
onesScore = [[NSMutableArray alloc]init];
[onesScore addObject:@"5"];
[onesScore addObject:@"6"];
[onesScore addObject:@"7"];
[onesScore addObject:@"8"];
[onesScore addObject:@"9"];
2 番目の配列 (コンポーネント 1 で使用) は次のように定義されます。
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 はうまく機能し、最初のコンポーネントが正しく読み込まれます。問題は、2 番目のコンポーネントが取得されることです。
0、1、2、3、4、5、0、1、2、3
完全な「tenthsScore」配列を適切にロードしていません。私は完全に途方に暮れています。
何か案は?