1
我有一個UIPicker,其中包含3個包含數字值的組件,這允許用戶以hh:mm:ss格式設置時間。如果我從第一個組件中選擇小時,我的UITextField看起來像這樣:10:(null):(null)。當用戶選擇合適的mm和ss時,可以刪除(null)。但是,如果用戶只想輸入10小時,我希望其他值爲00而不是(空),而用戶不必物理移動選取器組件。UIPicker - 初始值問題
任何人有任何想法呢?
下面的一些代碼,這個問題與timePicker有關。
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
if([pickerView isEqual: routePicker])
{
route.text = [[routeArray objectAtIndex:0] valueForKey:@"route_name"];
return [[routeArray objectAtIndex:row] valueForKey:@"route_name"];
}
else if([pickerView isEqual: activityPicker])
{
activity.text = [activityArray objectAtIndex:0];
return [activityArray objectAtIndex:row];
}
else if([pickerView isEqual: intensityPicker])
{
if ([intensityArray objectAtIndex:row][email protected]"Low")
numberIntensity=2;
else if ([intensityArray objectAtIndex:row][email protected]"Low-Medium")
numberIntensity=3.5;
else if ([intensityArray objectAtIndex:row][email protected]"Medium")
numberIntensity=5;
else if ([intensityArray objectAtIndex:row][email protected]"Medium-High")
numberIntensity=6.5;
else if ([intensityArray objectAtIndex:row][email protected]"High")
numberIntensity=8;
else numberIntensity=0;
intensity.text = [intensityArray objectAtIndex:0];
return [intensityArray objectAtIndex:row];
}
else if([pickerView isEqual: timePicker])
{
switch (component)
{
case 0:
return [hourArray objectAtIndex:row];
break;
case 1:
return [minuteArray objectAtIndex:row];
break;
case 2:
return [secondArray objectAtIndex:row];
break;
default:
return 0;
break;
}
}
else if([pickerView isEqual: distancePicker])
{
switch (component)
{
case 0:
return [distance1Array objectAtIndex:row];
break;
case 1:
return [distance2Array objectAtIndex:row];
break;
default:
return 0;
break;
}
}
else
{
return 0;
}
}
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
if([pickerView isEqual: routePicker])
{
route.text = [[routeArray objectAtIndex:row] valueForKey:@"route_name"];
}
else if([pickerView isEqual: timePicker])
{
if (component == 0)
{
selectedHour = [hourArray objectAtIndex:row];
}
else if (component == 1)
{
selectedMinute = [minuteArray objectAtIndex:row];
}
else if (component == 2)
{
selectedSecond = [secondArray objectAtIndex:row];
}
time.text = [NSString stringWithFormat:@"%@:%@:%@", selectedHour, selectedMinute, selectedSecond];
}
else if([pickerView isEqual: distancePicker])
{
if (component == 0)
{
selectedDistance1 = [distance1Array objectAtIndex:row];
}
else if (component == 1)
{
selectedDistance2 = [minuteArray objectAtIndex:row];
}
distance.text = [NSString stringWithFormat:@"%@.%@", selectedDistance1, selectedDistance2];
}
else if([pickerView isEqual: activityPicker])
{
activity.text = [activityArray objectAtIndex:row];
}
else if([pickerView isEqual: intensityPicker])
{
intensity.text = [intensityArray objectAtIndex:row];
}
}
謝謝,我剛剛初始化selectHour,selectMinute並selectSecond to @「00」。 – Stephen 2010-09-28 09:37:41