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