Objective-C: автообновление текста метки

Я новичок в 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 ответа

Решение

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

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

}

Проверьте ссылку на протокол UIPickerViewDelegate

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

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

Другие вопросы по тегам