2011-10-03 176 views
0

我是Objective-C的新手,我需要您的幫助!在您將在下面看到的代碼中,我的標籤會從選取器視圖中選取數據。我希望不要使用「計算」​​IBAction,只要用戶更改選取器視圖中的值,就會實時更新我的​​「chargeLabel.text」。Objective-C:自動更新標籤文本

-(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 Protocol Reference

編輯:我剛剛意識到您訪問的chargerSlidervalue財產,如果它是一個UISlider你不需要實現任何代表,只需將IBAction分配給IB中滑塊的Value Changed選擇器即可。

1

爲自己設定爲UIPickerView的代表,以及實現此方法:pickerView:didSelectRow:inComponent 當這個方法被調用,只需調用[self calculate:nil];