0

これは、ボタンが押されたときにUIPickerViewを表示するために使用する方法ですが、それを閉じるためにどのような方法を使用しますか?

if (buttonIndex == 4) {
    int height = 255;

//新しいビューを作成します

UIView * newView = [[UIView alloc] initWithFrame:CGRectMake(0, 200, 320, height)];
    newView.backgroundColor = [UIColor colorWithWhite:1 alpha:1];

//ツールバーを追加

UIToolbar * toolbar = [[UIToolbar alloc] initWithFrame: CGRectMake(0, 0, 320, 40)];
    toolbar.barStyle = UIBarStyleBlack;

//ボタンを追加

UIBarButtonItem *infoButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:nil action:@selector(dismissCustom:)];
    toolbar.items = [NSArray arrayWithObjects:infoButtonItem, nil];

//日付ピッカーを追加

UIDatePicker *datePicker = [[UIDatePicker alloc] init];
    datePicker.datePickerMode = UIDatePickerModeDateAndTime ;
    datePicker.hidden = NO;
    datePicker.date = [NSDate date];
    datePicker.frame = CGRectMake(0, 40, 320, 250);
    [datePicker addTarget:self action:nil/*@selector(changeDateInLabel:)*/ forControlEvents:UIControlEventValueChanged];
    [newView addSubview:datePicker];

//ポップアップビューを追加

[newView addSubview:toolbar];
[self.view addSubview:newView];

//画面上でアニメーション化します

CGRect temp = newView.frame;
    temp.origin.y = CGRectGetMaxY(self.view.bounds);
    newView.frame = temp;
    [UIView beginAnimations:nil context:nil];
    temp.origin.y -= height;
    newView.frame = temp;
    [UIView commitAnimations];

}
4

1 に答える 1

0

ビューを削除するには、別のアニメーションを実行します。フレーム設定を逆にして、画面の外に移動します。アニメーションが完了したら、 を呼び出して「newView」を削除し[newView removeFromSuperview]ます。

UIView アニメーションの新しいブロック形式の使用を検討する必要があります。それははるかに簡単になります。

もう1つ。カスタム ビュー クラスがある場合、そのカスタム クラスがすべての作業を自分自身でセットアップしないのはなぜでしょうか?

また、クラス名は大文字で始めるのが標準的な規則です。これにより、コードを見たときに変数名からクラス名を簡単に判別できます。

于 2012-10-27T02:21:47.820 に答える