[英]Make UIPicker have at least one foot value?
就像使用Apple计时器应用程序一样,您不能选择“ 0”。 您必须选择至少1小时或1分钟。 这是我为选择器格式化文本字段的方式。
//Formats the textfield based on the pickers.
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
NSString *result = [feetArray objectAtIndex:[feetPicker selectedRowInComponent:0]];
result = [result stringByAppendingFormat:@"%@ft", [feetArray objectAtIndex:[feetPicker selectedRowInComponent:1]]];
result = [result stringByAppendingFormat:@" %@", [inchArray objectAtIndex:[inchesPicker selectedRowInComponent:0]]];
result = [result stringByAppendingFormat:@"%@", [inchArray objectAtIndex:[inchesPicker selectedRowInComponent:1]]];
result = [result stringByAppendingFormat:@" %@in", [fractionArray objectAtIndex:[fractionPicker selectedRowInComponent:0]]];
RiseTextField.text = result;
}
如果他们一直选择“ 0”,我需要什么,我希望脚在选择器上自动变为1。 我认为3个选择器是一个。 2英尺的成分,2英寸的成分,然后1的分数成分。 因此其显示在文本字段中,例如10f 09 1 / 16in。
本质上,您要执行的操作是:(假设第0行包含零值)
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
if (([feetPicker selectedRowInComponent:0] == 0)&&
([feetPicker selectedRowInComponent:1] == 0)&&
([inchesPicker selectedRowInComponent:0] == 0)&&
([inchesPicker selectedRowInComponent:1] == 0)&&
([fractionPicker selectedRowInComponent:0] == 0)){
// All values zero
[feetPicker selectRow:1
inComponent:1
animated:YES];
return;
}
// Handle valid value
}
另外,请考虑对result
使用NSMutableString
。 然后,无需在每一行中都创建新的NSString
而只需调用[result appendFormat:@"....
即可修改您拥有的行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.