我将UIToolbar
设置为inputAccessoryView
的{{1}}。这会在编辑时显示键盘顶部的工具栏。但是,我在旋转设备时遇到了一个问题:工具栏应该变得不那么高(32像素对44)。当我只更新工具栏的高度时,我在工具栏和键盘之间得到一个小空格:
image http://i54.tinypic.com/1z6bhut.png
因此我使用UITextView
来更新原点,然后在从纵向旋转到横向时工作。但是,当向上旋转时,工具栏的像素太低而且与键盘重叠:
image http://i56.tinypic.com/2eey2cl.png
到那时,原点再次为(0,0)并且设置负值没有帮助。有关如何使其工作以使工具栏改变其大小而不会重叠的任何建议吗?
答案 0 :(得分:1)
我通过调用[textView resignFirstResponder]
中的-willRotateToInterfaceOrientation:duration:
和[textView becomeFirstResponder]
中的-didRotateFromInterfaceOrientation:
来修复此问题。系统似乎正确调整框架。
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
didShowKeyboard = [self.textView isFirstResponder];
[self.textView resignFirstResponder];
}
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
CGRect toolbarFrame = [self.navigationController.toolbar bounds];
self.keyboardToolbar.frame = toolbarFrame;
if (didShowKeyboard)
[self.textView becomeFirstResponder];
}
答案 1 :(得分:0)
您可以使用自动调整大小在旋转期间渲染控件,而不是计算原点和大小。
请参阅本教程http://www.bogotobogo.com/XcodeSDK-Chapter4.html
我认为这可以给你一个提示。