我从堆栈溢出答案中实现了这个功能,第一个答案是当键盘不隐藏文本字段时移动视图,
//method to move the view up/down whenever the keyboard is shown/dismissed
-(void)setViewMovedUp:(BOOL)movedUp
{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.3]; // if you want to slide up the view
CGRect rect = self.view.frame;
if (movedUp)
{
// 1. move the view's origin up so that the text field that will be hidden come above the keyboard
// 2. increase the size of the view so that the area behind the keyboard is covered up.
rect.origin.y -= kOFFSET_FOR_KEYBOARD;
rect.size.height += kOFFSET_FOR_KEYBOARD;
}
else
{
// revert back to the normal state.
rect.origin.y += kOFFSET_FOR_KEYBOARD;
rect.size.height -= kOFFSET_FOR_KEYBOARD;
}
self.view.frame = rect;
[UIView commitAnimations];
}
现在它在 ipad 上运行良好。我有一个文本框和它旁边的一些按钮,在它上面有一个带有聊天的文本视图。您使用文本框键入您的聊天。在 iphone 上,它会移动您输入的文本框和向上的按钮,但不会移动文本视图。事实上,它仍然覆盖了大部分窗口,并且按钮在窗口中间的顶部向上移动。
现在我今晚刚刚创建了 iphone 故事板视图(现在有一个视图),并将我所有的控件连接到它,以便在 ipad 上工作。现在该程序仍然可以在 ipad 上正常工作,甚至可以在显示键盘工作时向上移动视图。但在 iphone 上,它会移动除主控制台 UITextView 之外的所有内容。糟糕的是,在您键入时能够阅读文本:) 另外我想了解这里的理论。似乎如果我将视图定义为一个矩形并将其向上移动一些数字,例如 250,它应该全部移动。也许有更好的方法来做到这一点,比如首先获得键盘尺寸,但我仍然希望它能够移动那个高度。
麦克风