如何将UITableViewCell中的UITextView滚动到键盘顶部?

时间:2014-06-01 02:25:52

标签: ios ios7

我需要创建一个UITableView,其中UITableViewCell包含UITextView非常类似于“通讯录”应用中的“备注”字段。

触摸文本视图时,键盘会启动,光标会正确滚动到键盘顶部。我该怎么做?

enter image description here

输入更多行时,UITextView已正确展开,并滚动UITableView。这是怎么做到的?

enter image description here

我一直在尝试Stack Overflow的许多示例和解决方案。大多数人正在处理调整文本视图高度的问题。我能够做到这一点。但是,我无法在编辑模式下找到任何处理表视图单元格和文本视图的内容。我希望一些有经验的iOS开发人员能够在这里伸出援助之手。提前谢谢。

1 个答案:

答案 0 :(得分:0)

您可以通过在键盘出现时偏移UITableView内容来实现此目的。

- (void)keyboardWillShow
{    
     CGSize keyboardSize = [[[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;

     UIEdgeInsets contentInsets = UIEdgeInsetsMake(0.0, 0.0, (keyboardSize.height), 0.0);

     self.tableView.contentInset = contentInsets;
     self.tableView.scrollIndicatorInsets = contentInsets;
     [self.tableView scrollToRowAtIndexPath:self.editingIndexPath atScrollPosition:UITableViewScrollPositionTop animated:YES];

}

在键盘返回时重置edgeinset:

- (void)keyboardWillHide:(NSNotification *)notification
{
   self.tableView.contentInset = UIEdgeInsetsZero;
   self.tableView.scrollIndicatorInsets = UIEdgeInsetsZero;
}

对于代码和实现,我建议HERE