2 列の UIPickerView を実装しました。最初の列の値を取得し、double 型の minutesDuration 値に設定し、2 番目の列から secondsDuration という名前の別の double 値を取得したいと考えています。次に、分を秒に変換し、totalDuration という名前の double 値で 2 つの値を合計します。これが私の didSelectRow メソッドです:
- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
NSString *minute =[[NSString alloc] init];
NSString *seconds = [[NSString alloc] init];
//Here, like the table view you can get the each section of each row if you've multiple sections
if(component == 0){
int i =row;
int j =row;
minute = [NSString stringWithFormat:@"%@", [minutesArray objectAtIndex:i]];
seconds = [NSString stringWithFormat:@"%@", [secondsArray objectAtIndex:j]];
double minutesDuration = [minute doubleValue] * 60;
NSLog(@"%f", minutesDuration);
double secondsDuration = [seconds doubleValue];
totalDuration = minutesDuration + secondsDuration;
NSLog(@"%f", totalDuration);
}
else if (component == 1){
int i =0;
int j =row;
minute = [NSString stringWithFormat:@"%@", [minutesArray objectAtIndex:i]];
seconds = [NSString stringWithFormat:@"%@", [secondsArray objectAtIndex:j]];
double minutesDuration = [minute doubleValue] * 60;
NSLog(@"%f", minutesDuration);
double secondsDuration = [seconds doubleValue];
NSLog(@"%f", secondsDuration);
totalDuration = minutesDuration + secondsDuration;
NSLog(@"%f", totalDuration);
}
}
アプリを実行すると、1 of 2 main が表示されます: - 値が追加されません - 2 番目の列の値が変更されていなくても、2 つの値が追加されます Btw 合計期間はヘッダー ファイルで宣言されます。