私はポートレートとportraitUpsideDownで動作するアプリケーションを持っています。私は、キーボードが表示されたら、ビューをプッシュして、それが消えたら戻します。次のコードは、デバイスがポートレートにとどまっている場合は完全に機能しますが、portraitUpsideDownの場合は、ビューが間違った方向(260ではなく-260)に移動し、キーボードが表示されている間に向きが変化しても処理されません。 keyboardWillHideメソッドは、両方の向きで正常に動作します。どの方向のデバイスがあるかは関係ありませんので、キーボードまたはステータスバーに相対的なビューを移動する方法はありますか?キーボードのビューをポートレート方向に移動する方法
- (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){
}];
}
問題は、私はフレームの高さを使用する場合、加算または減算するかどうかを知っている必要が同じです... – HackyStack