PortraitとportraitUpsideDownでのみ実行されるアプリがあります。キーボードが表示されたらビューを上に押し、キーボードが消えたら下に引く必要があります。次のコードは、デバイスが縦向きのままの場合は完全に機能しますが、portraitUpsideDownの場合、ビューは間違った方向に移動します(260ではなく-260)。さらに、キーボードの表示中に向きが変わると、処理されません... KeyboardWillHideメソッドは、両方の方向で正常に機能します。ビューRELATIVEをキーボードまたはステータスバーに移動して、デバイスの向きに関係なく移動する方法はありますか?
- (void) keyboardWillShow:(NSNotification *) notification
{
NSLog(@"Keyboard Will Show");
double animationDuration;
animationDuration = [[[notification userInfo] objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue];
[UIView animateWithDuration:animationDuration delay:0 options:UIViewAnimationCurveEaseIn animations:^{
self.view.center = CGPointMake(self.view.center.x, self.view.center.y + -260);
}completion:^(BOOL finished){
}];
}
- (void) keyboardWillHide:(NSNotification *) notification
{
double animationDuration;
animationDuration = [[[notification userInfo] objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue];
NSLog(@"Keyboard Will Hide");
[UIView animateWithDuration:animationDuration delay:0 options:UIViewAnimationCurveEaseIn animations:^{
[self.view setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
}completion:^(BOOL finished){
}];
}