IBAction float, имеют одинаковые номера в зависимости от ввода - PullRequest
1 голос
/ 14 января 2012

Новичок в объективе-c, и я просто не могу найти ответ на этот вопрос нигде. Я выполняю IBAction для расчета, но мне нужно, чтобы входные данные из метки фактически равнялись чему-то другому в уравнении.

Например:

-(IBAction)calculate; {
  float a = 1.05 if ([label1.text] == 1in);
        a = 2.07 if ([label1.text] == 2in);
        a = 3.07 if ([label1.text] == 3in);
  float b = a*([textField1.text floatValue]);
        label2.text = [[NSString alloc] initWithFormat:@"%2.f", b];
  }

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

Спасибо!

1 Ответ

0 голосов
/ 14 января 2012
- (void)calculate {
  float a;
  if ([self.inputField.text isEqualToString:@"1in"])      a = 1.05f;
  else if ([self.inputField.text isEqualToString:@"2in"]) a = 2.07f;
  else if ([self.inputField.text isEqualToString:@"3in"]) a = 3.07f;
  else a = 0.0f;

  if (a) {
    float b = a * ([self.inputField.text floatValue]);
    self.inputField.text = [[NSString alloc] initWithFormat:@"%.2f", b];
  }
  else self.inputField.text = @"Invalid";
}

- (void)viewDidLoad
{
  //...

  self.inputField = [[UITextField alloc] initWithFrame:CGRectMake(10.0f, 20.0f, 300.0f, 30.0f)];
  [self.inputField setBackgroundColor:[UIColor grayColor]];
  [self.view addSubview:self.inputField];

  UIButton * doneButton = [[UIButton alloc] initWithFrame:CGRectMake(10.0f, 55.0f, 300.0f, 30.0f)];
  [doneButton setBackgroundColor:[UIColor blackColor]];
  [doneButton setTitle:@"Done" forState:UIControlStateNormal];
  [doneButton addTarget:self action:@selector(calculate) forControlEvents:UIControlEventTouchUpInside];
  [self.view addSubview:doneButton];
  [doneButton release];
}

Примечание. Я заменил формат вывода %2.f на %.2f, так как, возможно, вам понадобится этот формат. Например:

Input > 1in
Output< 1.05

Input > 2in
Output< 4.14

Input > 3in
Output< 9.21
...