私は以下のようなものを見ています
日付ピッカー ビューは常にそこにあり、[日付を入力] がクリックされたときにポップアップ表示され、背景をクリックすると日付ピッカーがダウンするようにするにはどうすればよいですか
日付ピッカービューを慣例にしたばかりですが、これを行う方法がわかりません。
私は以下のようなものを見ています
日付ピッカー ビューは常にそこにあり、[日付を入力] がクリックされたときにポップアップ表示され、背景をクリックすると日付ピッカーがダウンするようにするにはどうすればよいですか
日付ピッカービューを慣例にしたばかりですが、これを行う方法がわかりません。
Ok。アニメーションを使用した要件のサンプル コードを次に示します。
- (void) showView
{
[self.view addSubview:yourDatePickerView];
yourDatePickerView.frame = CGRectMake(0, -250, 320, 50);
[UIView animateWithDuration:1.0
animations:^{
yourDatePickerView.frame = CGRectMake(0, 152, 320, 260);
}];
}
DatePickerView を非表示にする方法は次のとおりです。
- (void) hideView
{
[UIView animateWithDuration:0.5
animations:^{
yourDatePickerView.frame = CGRectMake(0, -250, 320, 50);
} completion:^(BOOL finished) {
[yourDatePickerView removeFromSuperview];
}];
}
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
if(textField == yourDateTextField)
{
[self showView];
return NO; // preventing keyboard from showing
}
return YES;
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
if(textField == yourDateTextField)
{
[self hideView];
}
}
それだけです。
デリゲート メソッドでテキスト フィールドを識別する必要があります。
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
if(textField == DATE_TEXT_FIELD)
{
//Display date picker
}
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
if(textField == DATE_TEXT_FIELD)
{
//Hide date picker
}
}
UIView
この日付ピッカー ビューを含む参照を1 つ作成します。datePickerContainerView
これをtextField.inputView
プロパティに割り当てます。次に、メソッドに割り当てtextfield.delegate
てself
実装します
textFieldShouldReturn
。そのメソッドで、この行を書きます
[textField rejectFirstResponder];
はいを返します。
そのテキストフィールドをタップすると、inputview プロパティの設定に従って、デフォルトのキーボードの代わりに datepicker ビューが読み込まれます。
datePicker のコードを実行する前に、必ず次のコード行を入力してください。
[textField resignFirstResponder];
ご存知のように、キーボードは textField のデフォルトのファーストレスポンダです。そのため、最初に再署名してからピッカーのコードを作成する必要があります。そうしないと、キーボードもポップアップします。