Ios 当键盘出现错误时,将表格视图行滚动到顶部

Ios 当键盘出现错误时,将表格视图行滚动到顶部,ios,objective-c,uitableview,Ios,Objective C,Uitableview,我有一个UITableView,每个单元格中都有uitextview。我想将用户正在编辑UITextView的单元格移动到表视图的顶部 这很容易通过以下方式实现: self.tableView.contentInset = UIEdgeInsetsMake(0, 0, self.view.frame.size.height - textViewHeight, 0); 然而,我有一个非常奇怪的问题,我找不到任何东西时,搜索它。无论我使用哪种方法设置contentInset,在键盘未完成屏幕动画之

我有一个
UITableView
,每个单元格中都有
uitextview
。我想将用户正在编辑
UITextView
的单元格移动到表视图的顶部

这很容易通过以下方式实现:

self.tableView.contentInset = UIEdgeInsetsMake(0, 0, self.view.frame.size.height - textViewHeight, 0);
然而,我有一个非常奇怪的问题,我找不到任何东西时,搜索它。无论我使用哪种方法设置
contentInset
,在键盘未完成屏幕动画之前,单元格都不会向上移动。这就好像键盘动画具有某种优先级

经过调查,我发现同时设置
contentOffset
实际上会将单元格向上移动,甚至在键盘完成动画制作之前

谁能给我解释一下这种行为,或者解释一下发生了什么


谢谢

当您
UITextfield
UITextview
将开始编辑方法调用时,您可以使用UITableView方法

self.tableView.contentInset = UIEdgeInsetsMake(0, 0, self.view.frame.size.height - textViewHeight, 0);
tableView.scrollToRowAtIndexPath(NSIndexPath, atScrollPosition: UITableViewScrollPosition, animated: Bool)

您可以滚动到顶部。我希望这将帮助您

这是此类场景的最佳方式。只要安装IQKeyboardManager吊舱,当您单击UITextView时,它将自动滚动tableview,您无需编写任何其他内容。

您正在将
UITableView
ViewController
一起使用。但要实现您的目标,最好的方法是使用
UITableViewController

当用户输入任何数据时,它会自动向上滚动(滚动到键盘上方,并关注编辑文本字段)。

尝试观察键盘通知UIKeyboardWillShowNotification和UIKeyboardWillHideNotification,将代码放入选择器方法。

如我所述,它不起作用,无论我在哪个委托方法中调用它。它仍然在等待键盘的出现。但是,我想知道发生了什么。。。不安装第三方库我需要UIViewController的功能,例如拥有主UIViewController您需要哪些功能。。。看看这个答案