我正在编写一个具有分组 tableView 的应用程序,该应用程序具有包含 UITextViews 在模态 segue 中的自定义单元格。我希望能够编辑每个单元格/文本视图中的文本。我的问题是滚动视图底部的单元格/文本视图,以便它们出现时出现在键盘上方。
编辑:prepareForSegue 按照评论中的要求:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"update info"]) {
UpdatesTableViewController *uvc = (UpdatesTableViewController *)segue.destinationViewController;
uvc.dumpInfo = self.dumpInfo;
}
}
如果我使用 UITableView 控制器,一切都会很好 - 当 textview 成为 firstResponder 时,每个单元格/文本视图都会向上滚动到视图顶部,因此可以在编辑时看到它。但是当 tableView 滚动时,我添加到 tableView 顶部的导航栏会滚动。
如果我使用 UIViewController 并添加导航栏和表格视图,我可以使用 UITableView scrollToRowAtIndexPath:atScrollPosition:animated: 方法让它向上滚动单元格。导航栏保持固定。但是底部的单元格不能向上滚动到足以显示的高度。
- (void)textViewDidBeginEditing:(UITextView *)textView
{
CGPoint location = [textView.superview convertPoint:textView.center toView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:location];
[self.tableView scrollToRowAtIndexPath:indexPath atScrollPosition: UITableViewScrollPositionTop animated:YES];
}
UITableView 控制器正在做一些很酷的魔法来完成这项工作——我想做的就是将导航栏固定在视图顶部的位置。