iOS7 在 UITableViewCell 中以适当的偏移量编辑 UITextField 时滚动到 UITableViewController 的行

Posted

技术标签:

【中文标题】iOS7 在 UITableViewCell 中以适当的偏移量编辑 UITextField 时滚动到 UITableViewController 的行【英文标题】:iOS7 scroll to row of UITableViewController while editing UITextField in UITableViewCell with proper offset 【发布时间】:2013-10-22 21:44:54 【问题描述】:

我的 UITableViewController 上的单元格有一个可以编辑的 textField。当我编辑 textField 时,我需要滚动 tableview 以使当前字段所在的行位于键盘上方。这是我正在使用的代码:

-(void)textViewDidBeginEditing:(UITextView *)textView
   
    UITableViewCell *cell = (UITableViewCell*) [[textField superview] superview];

    [self.tableView scrollToRowAtIndexPath:[self.tableView indexPathForCell:cell]
                          atScrollPosition:UITableViewScrollPositionTop
                                  animated:YES];

问题是它不适用于我的表格视图中的最后几个单元格。我猜它与tableview的contentSize有关。是否有适当的方法来调整 tableview 的偏移量,以便最后一个单元格在键盘上方滚动?

【问题讨论】:

请看这里:***.com/questions/8685800/… 【参考方案1】:

如果

[self.tableView scrollToRowAtIndexPath:[self.tableView indexPathForCell:cell] atScrollPosition:UITableViewScrollPositionTop animated:YES];

你可以使用

[self.tableView setContentOffset:CGPointMake(0, CGRectGetMinY(cell.frame)) animated:YES];

无论您是点击第一个还是最后一个单元格,这都会将您选择的单元格滚动到屏幕顶部(如 UITableViewScrollPositionTop)。 控制 ContentOffset 您可以设置所选单元格的位置。

【讨论】:

谢谢。正是我想要的:) 第一次无法在 ios 7 中运行。但是当我弹回它时它起作用了。使用自动布局有什么想法吗?

以上是关于iOS7 在 UITableViewCell 中以适当的偏移量编辑 UITextField 时滚动到 UITableViewController 的行的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS7 中更新 UITableViewCell 高度

iOS7:来自其子视图之一的 UITableViewCell

在 UITableviewCell (ios7) 中嵌入的 UITableView 中滚动

UITableviewCell textLabel在ios7中不可见

iOS 8 中的 UITableViewCell 约束在 iOS7 中不起作用

UITableViewCell 中的 UIButton 在 iOS7 中不起作用