0

このコードを下に置く方法は?

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    NSString *year = [dateYear objectAtIndex:[picker selectedRowInComponent:0]];
    NSString *month = [dateMonth objectAtIndex:[picker selectedRowInComponent:1]];
    NSString *day = [dateDay objectAtIndex:[picker selectedRowInComponent:2]];
    labelDate1.text = [year stringByAppendingFormat:@" : %@ : %@", month, day];
}

ここに?

- (IBAction)setDateBtn1:(id)sender {
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.3];
    viewPicker.frame = CGRectMake(0, 0, 320, 460);
    [UIView commitAnimations];
}

私の問題は、labelDate1 用の setDateBtn1 と labelDate2 用の setDateBtn2 の 2 つのボタンがあり、両方のボタンが各ラベルに表示される入力データに対して 1 つの pickerView を呼び出すことです。日付を選択すると、どのボタンをピッカービューと呼んでも、labelDate1 にのみ表示されますが、labelDate1 には setDateBtn1、labelDate2 には setDateBtn2 が必要です。あなたが私の英語を理解してくれることを願っています。助けてくれてありがとう。

4

2 に答える 2

2

「アクティブ」ラベルを保持するプロパティが必要です。ボタン 1 が押されたとき、このプロパティをラベル 1 に設定します。ボタン 2 が押されたとき、ラベル 2 に設定します。

次に、上記のピッカー ビュー デリゲート メソッドで、現在行っているように常にラベル 1 を更新するのではなく、アクティブなラベルを更新します。

于 2012-06-23T05:29:25.523 に答える
1

あなたの質問を正しく理解できれば、ピッカー メソッドは 1 つですが、2 つのボタン (またはラベル) のいずれかでピッカーを表示できます。ピッカーで何かを選択すると、label1 または label2 が設定されます。

そこで... ピッカー ビューの " tag" プロパティを利用する機会がここにあります。

ピッカーを起動するときは、" viewPicker.tag" を " 1" (ラベル 12の場合) に設定し、ラベル 2 のボタンでピッカーを起動する場合は " " に設定します。

次に、" didSelectRow" 関数で、どのラベルを選択しているかがわかります。そして、次のようなことができます:

if(pickerView.tag == 1)
    labelDate1.text = [year stringByAppendingFormat:@" : %@ : %@", month, day];
else
    labelDate2.text = [year stringByAppendingFormat:@" : %@ : %@", month, day];

うまくいけば、私はこれを十分に説明して、あなたが続けられるようにしました.

于 2012-06-23T05:28:58.533 に答える