0

私は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;

}

4

2 に答える 2

2

UIPickerViewDelegateプロトコルを実装する必要があります。didSelectRow次に、メソッドで好きなことを実行します

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

}

UIPickerViewDelegateプロトコルリファレンスを確認してください

編集:私は、それがデリゲートを実装する必要がない場合のアクセスvalueプロパティに気づきました。IBアクションをIBのスライダーのセレクターに割り当てるだけです。chargerSliderUISliderValue Changed

于 2011-10-03T10:40:13.107 に答える
1

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

于 2011-10-03T10:40:26.333 に答える