Objective-C: автообновление текста метки - PullRequest
0 голосов
/ 03 октября 2011

Я новичок в Objective-C, и мне нужна ваша помощь!В коде, который вы увидите ниже, мои метки выбирают данные из представления выбора.Я хотел бы вместо использования IBAction «вычисления» обновлять свой «chargeLabel.text» в режиме реального времени, как только пользователь изменяет значение в представлении выбора.

-(IBAction)calculate:(id)sender {
float floatTime;
if ([typeLabel.text isEqualToString:@"NiMH"])
{
    floatTime=([mAhLabel.text floatValue]/chargerSlider.value)*1.5;
} else {
    floatTime=([mAhLabel.text floatValue]/chargerSlider.value)*1.4;
}
int intHourhs=(floatTime);
float floatHours=(intHourhs);
float floatMinutes=(floatTime-floatHours)*60;
NSString *stringTotal = [NSString stringWithFormat: @"Hours: %.0i Minutes: %.0f", intHourhs, floatMinutes];
chargeLabel.text=stringTotal;

}

Ответы [ 2 ]

2 голосов
/ 03 октября 2011

Вы должны реализовать UIPickerViewDelegate протокол.Затем выполните все, что вы хотите, в методе didSelectRow

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    ...
    //here your code

}

Проверка Справочник по протоколу UIPickerViewDelegate

РЕДАКТИРОВАТЬ: Я только что понял, что ваш доступvalue свойство chargerSlider если это UISlider, вам не нужно реализовывать какой-либо делегат, просто передавая свою IBAction селектору Value Changed ползунка в IB.

1 голос
/ 03 октября 2011

Установите себя в качестве делегата UIPickerView и реализуйте этот метод: pickerView:didSelectRow:inComponent Когда этот метод вызывается, просто вызовите [self calculate:nil];

...