Слайдер / Текстовое окно Обмен данными - PullRequest
1 голос
/ 23 августа 2011

У меня есть 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];
}

Это работает отлично.То, что я хочу сделать сейчас (и у меня возникают проблемы с его выяснением), это как изменить значение при изменении текстовых полей.т.е. кто-то вручную вводит в свой совет, как обновить слайдер и процент чаевых;или если кто-то вручную вводит процент чаевых, как обновить ползунок и значение чаевых.

Как лучше всего это сделать?

1 Ответ

2 голосов
/ 23 августа 2011

Это довольно просто.Я не знаю всех переменных, которые вы использовали, поэтому замените свои собственные, когда попробуете код.Когда клавиатура уходит в отставку, вызовите метод:

- (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];
  }
}

Надеюсь, чтопомогает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...