我有一个UISlider
,附有两个文本框。把它想象成一个小费计算器。考虑一下收据:它有一个位置供您提示,然后是最终值。让我们在混音中加一个滑块。
现在我们有两个文本字段(提示百分比和提示量)和滑块。当滑块移动时,它调用一个方法,根据该人用滑块选择的值更新两个文本框。
[self.slider addTarget:self
action:@selector(sliderValueChanged:)
forControlEvents:UIControlEventValueChanged];
-(void)sliderValueChanged:(id)sender
{
tipPercent.text = [NSString stringWithFormat:@"%d", (int)slider.value];
tipPercentDbl = (int)slider.value;//tipPercent as Dbl
tipDbl = (totalDbl * (tipPercentDbl/100));//tip as Dbl
tip.text = [NSString stringWithFormat:@"%.2f", tipDbl];
tipPercent.text = [NSString stringWithFormat:@"%.0f", tipPercentDbl];
totalWithTipDbl = (totalDbl+tipDbl);
totalWithTip.text = [NSString stringWithFormat:@"%.2f", totalWithTipDbl];
}
这完美无缺。我现在要做的事情(并且我很难搞清楚)是如何在文本字段更改时更改值。即有人手动输入自己的提示,如何更新滑块和提示百分比;或者,如果有人手动输入提示百分比,如何更新滑块和提示值。
最好的方法是什么?
答案 0 :(得分:2)
这很容易。我不知道您使用的所有变量,因此在您尝试代码时请替换自己的变量。当键盘退出时,请调用方法:
- (void)updateTheSliderAndTipPercentage; {
float percentage = tipTheyEntered / totalCost;
[slider setValue:percentage animated:YES];
percentage *= 100; // This is if you want the percentage in [0,100].
tipPercent.text = [NSString stringWithFormat:@"%f", percentage];
}
编辑:为了知道何时调用此方法,请进行简单检查:
- (BOOL)textFieldShouldReturn:(UITextField *)textField; {
if(textField == tipTheyEnteredTextField){
[self updateTheSliderAndTipPercentage];
}
}
希望有所帮助!