【发布时间】:2014-09-24 02:14:19
【问题描述】:
我正在构建的应用程序有一个消息/聊天视图控制器,它有一个带有 textView 的视图和一个位于视图底部的按钮(标签栏设置为隐藏)。当视图加载时,其中包含这些对象(textView 和按钮)的视图位于屏幕的底部(就像您进入对话时它在 iMessage 应用程序中的外观一样)
现在,当点击 textview 时,显然键盘会向上移动,与此同时,我设法让视图向上移动并直接坐在键盘顶部(就像你输入一个新的短信)。
现在我要做的是让视图通过键盘上下移动。截至目前,它从底部开始。当键盘升起时,该视图会在底部停留一两秒钟,然后仅出现在键盘上方。键盘关闭时也是如此。
我希望我能提供图片,但我想我的名声不太好
有没有一种方法可以匹配两者的过渡或动画,使它们像连接一样一起移动?
视图已初始化
//Create the keyboard UIView
self.keyboardView = [[UIView alloc] initWithFrame:CGRectMake(0, self.view.frame.origin.y + self.view.frame.size.height - (self.navigationController.tabBarController.tabBar.frame.size.height), self.view.frame.size.width, 50)];
用于移动视图的选择器
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardFrameDidChange:) name:UIKeyboardDidChangeFrameNotification object:nil];
选择器实现
- (void)keyboardFrameDidChange:(NSNotification*)notification{
NSDictionary* info = [notification userInfo];
CGRect kKeyBoardFrame = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
[self.keyboardView setFrame:CGRectMake(0, kKeyBoardFrame.origin.y - self.keyboardView.frame.size.height, 320, self.keyboardView.frame.size.height)];
self.myScrollView.contentSize = CGSizeMake(self.view.frame.size.width, self.myTableView.frame.size.height);
}
【问题讨论】: