上部のUIToolbarと下部のキーボードの間の画面全体を埋めたいビューがあります。UIKeyboardWillShowNotification
キーボードが表示されたことを検出するメッセージをリッスンしており、以下を使用してビューを調整しています。
- (void)keyboardWillShow:(NSNotification*)notification {
NSDictionary* userInfo = [notification userInfo];
CGSize keyboardSize = [[userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size;
[UIView animateWithDuration:0.3f animations:^{
subview.frame = CGRectMake(subview.frame.origin.x, subview.frame.origin.y, self.view.frame.size.width - 40, self.view.frame.size.height - 62 - keyboardSize.height - 20);
}];
}
これはポートレートモードでは問題なく機能しますが、ランドスケープではビューがいたるところにあります。デバイスが横向きモードのときに幅/高さを無効に切り替えてみました。
これが基本的なことであることは知っていますが、ランドスケープモード用にビューを正しく調整する方法を理解するのにいつも苦労していました。