繁体   English   中英

使UIPicker至少具有一英尺的价值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM