Objective-C:自动更新标签文本

时间:2011-10-03 10:35:28

标签: objective-c label ibaction uipickerviewcontroller

我是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 个答案:

答案 0 :(得分:2)

您必须实施UIPickerViewDelegate协议。 然后,在didSelectRow方法

中执行您想要的任何操作
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    ...
    //here your code

}

检查UIPickerViewDelegate Protocol Reference

编辑:我刚刚意识到您访问value的{​​{1}}属性,如果它是chargerSlider您不需要实现任何代理,只需将您的IBAction分配给IB中滑块的UISlider选择器。

答案 1 :(得分:1)

将自己设置为UIPickerView的委托,并实现此方法:pickerView:didSelectRow:inComponent 调用此方法后,只需调用[self calculate:nil];

即可