我有一个问题,我在键盘上显示事件移动我的视图,而且我的视图底部有一个文本视图,这是一个聊天屏幕。 现在我的问题是,当iOS 8中的键盘出现时,我的组合视图位于底部隐藏。因此,如果出现类型,我需要再次移动视图,并在快速类型移开时重新定位。
先谢谢。
答案 0 :(得分:1)
想法是检测键盘框架何时发生变化,然后相应地重新调整视图。请参阅此解决方案QuickType Bar on the Keyboard
如果您已经有一个NSNotification检测到键盘何时会显示,那么您可以通过这种方式完成。
-(void)keyboardWasShown:(NSNotification *)aNotification{
//this part detects the height of your keyboard, whether quicktype is open or not
NSDictionary *keyboardInfo = [aNotification userInfo];
CGSize keyboardSize = [[keyboardInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size;
float keyboardHeight = keyboardSize.height;
//animate message bar - this animation code works if autolayout is on
[self.messageBarView layoutIfNeeded];
[UIView animateWithDuration:[aNotification.userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue] animations:^{
self.bottomConstraintMsgView.constant = keyboardHeight;
[self.messageBarView layoutIfNeeded];
}];
}
重要的是你宣布“CGSize keyboardSize”。你必须像我上面那样使用UIKeyboardFrameEndUserInfoKey。这将在帧更改(quicktype hide / show)完成后为您提供帧大小。