Помогите с UISlider - PullRequest
       14

Помогите с UISlider

0 голосов
/ 16 апреля 2011

С моим UISlider, если мое значение «tipPercentage» достигает 10 или более, метка «costWithTipLabel» возвращается к значению «costWithoutTip» textField, начиная с 10% -ного увеличения чаевых.

Я был бы очень признателен, если бы вы взглянули на мой код и сообщили мне о проблеме, вызывающей это.

Спасибо заранее.

- (IBAction)aSliderChanged:(id)sender {
    UISlider *slider = (UISlider *)sender;
    if (slider == tipslide) {
        NSString *tip = [NSString stringWithFormat:@"%.f", slider.value * 100];
        float tipPercentage = [tip floatValue];
        NSString *multiplier = [NSString stringWithFormat:@"1.%.f", tipPercentage];
        [costWithTipLabel setText:[NSString stringWithFormat:@"%.2f", [[costWithoutTip text] floatValue] * [multiplier floatValue]]];
        [tipTextLabel setText:[[NSString stringWithFormat:@"Tip (%.f", slider.value *100]stringByAppendingString:@"%):"]];
    }
    else if (slider == peopleslide) {
        NSString *p = [NSString stringWithFormat:@"%.f", slider.value*10];
        float numOfPeople = [p floatValue];
        [numberOfPeopleTextLabel setText:[NSString stringWithFormat:@"Each (%.f):", numOfPeople]];
        [numberOfPeopleLabel setText:[NSString stringWithFormat:@"%.2f", [[costWithTipLabel text] floatValue]/numOfPeople]];
    }
    [totalBillCost setText:[NSString stringWithFormat:@"%.2f", [[costWithTipLabel text] floatValue]]];
}

1 Ответ

0 голосов
/ 16 апреля 2011

Я предполагаю, что это связано с неожиданным форматированием ваших строк.Я предлагаю вам разбить ваши назначения stringWithFormat на несколько простых (не вложенных) операторов, а затем NSLog ваши значения, используя как можно более общий формат (% f).Тогда вы сможете найти причину проблемы.

...