2011-10-03 25 views
0

私はObjective-Cを初めて使っています。私はあなたの助けが必要です!下のコードで、私のラベルはピッカービューからデータを選択します。ユーザーがピッカービューで値を変更するとすぐに、「chargeLabel.text」をリアルタイムで更新するために、「calculate」IBActionを使用する代わりに、私は希望します。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

EDITに好きなことを実行します。私はちょうどそれはあなたがいずれかを実装する必要はありませんUISliderであれば、あなたはchargerSlidervalueプロパティにアクセスすることを実現し代理人、あなたのIBActionをIBのスライダーのValue Changedセレクターに頼むだけです。

1

UIPickerViewの代理人として自分自身を設定し、このメソッドを実装します。このメソッドが呼び出されますpickerView:didSelectRow:inComponent 、単に[self calculate:nil];

を呼び出します