のサイズを変更し、このフィールドが起動されたときに を含む をUITableView
上にスライドさせます。これらは 2 つの単純なモックアップです。UIView
UITextField
今、私はこのコードを持っています:
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDelegate:self];
[UIView setAnimationDuration:0.3];
[UIView setAnimationBeginsFromCurrentState:YES];
[myView setFrame:CGRectMake(myView.frame.origin.x, myView.frame.origin.y - 167, myView.frame.size.width, myView.frame.size.height)]; // 216 (keyboard's height) - 49 (tabbar's height) = 167
[UIView commitAnimations];
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDelegate:self];
[UIView setAnimationDuration:0.3];
[UIView setAnimationBeginsFromCurrentState:YES];
[myView setFrame:CGRectMake(myView.frame.origin.x, myView.frame.origin.y + 167, myView.frame.size.width, myView.frame.size.height)];
[UIView commitAnimations];
return TRUE;
}
問題は、キーボード スライド アップ アニメーションとmyView
スライド アップ アニメーションが同期していないことです。これら 2 つのアニメーションを完全に同期させるにはどうすればよいですか?
また、キーボードが表示されているときにサイズを変更し、UITableView
キーボードが非表示になったときに元の高さに戻す方法は?