我的聊天应用程序遇到了一些小问题,包括表格视图和文本字段。当我点击文本字段时,键盘会弹出并按下表格视图和文本字段,以便我可以输入我的信息。但是,由于表视图上升,一旦我发送消息,消息就会显示在表视图的第一个单元格中,最终会被隐藏,因为它不在视图范围内,除非我隐藏键盘。你们认为这样做的正确方法是什么?我认为当我扩展键盘而不是整个视图时,文本字段应该是唯一向上移动的东西?有人做过类似的事吗?
以下是我用于调整视图的代码
- (void)moveView:(NSDictionary*)userInfo up:(BOOL)up
{
CGRect keyboardEndFrame;
[[userInfo objectForKey:UIKeyboardFrameEndUserInfoKey]
getValue:&keyboardEndFrame];
UIViewAnimationCurve animationCurve;
[[userInfo objectForKey:UIKeyboardAnimationCurveUserInfoKey]
getValue:&animationCurve];
NSTimeInterval animationDuration;
[[userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey]
getValue:&animationDuration];
// Get the correct keyboard size to we slide the right amount.
[UIView beginAnimations:nil context:nil];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDuration:animationDuration];
[UIView setAnimationCurve:animationCurve];
CGRect keyboardFrame = [self.view convertRect:keyboardEndFrame toView:nil];
int y = keyboardFrame.size.height * (up ? -1 : 1);
self.view.frame = CGRectOffset(self.view.frame, 0, y);
[UIView commitAnimations];
}
答案 0 :(得分:1)
向上/向下移动文本字段以及调整表格视图的大小以及显示/隐藏键盘,而不仅仅是上下移动整个视图。无论如何,您的整个表格视图都是可见的。
答案 1 :(得分:0)
添加新单元格后,应立即使用scrollToRowAtIndexPath:atScrollPosition:animated:
滚动tableview。键盘显示和隐藏时,还应重新定位文本字段。 您必须使用contentInset属性。
您可以参考此问题UITableView slightly goes up when keyboard hides。如果您不熟悉,请浏览contentInset属性,如果您需要进一步澄清,请告诉我。