选择文本字段时滚动表视图

Posted

技术标签:

【中文标题】选择文本字段时滚动表视图【英文标题】:scroll table view on selecting a textfield 【发布时间】:2013-05-21 06:40:23 【问题描述】:

我有一个表格视图,每个单元格上都有一个文本字段,问题是表格视图应该在选择文本字段时向上滚动。在这里我附上我的项目,你能告诉我我犯了什么错误。

这是你可以从这里下载的链接http://pastelink.me/dl/9c2f89

我用来向上滚动的代码。

[super viewWillAppear:YES];
UITableViewCell *cellC = (UITableViewCell *)[[textField superview]superview];
[tabController scrollToRowAtIndexPath:[tabController indexPathForCell:cellC] atScrollPosition:UITableViewScrollPositionTop animated:YES];

【问题讨论】:

是 tabcontrller 你的 tableview 参考?还是 tableview 控制器本身?你试过 [tableview scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:YES];如果你单独使用 tableview . 请在tableView上使用自定义单元格。 它是tableviewcontroller 你可以下载项目并检查一下 在这种情况下,我想使用UIScrollView。并将根据textFields设置其contentOffset: 【参考方案1】:

看看这个项目here 将此类添加到您的项目并尝试使用它可能会起作用(TPKeyboardAvoidingTableView .h/TPKeyboardAvoidingTableView .m)。

【讨论】:

【参考方案2】:

您正在使用代码,

[tabController scrollToRowAtIndexPath:[tabController indexPathForCell:cellC] atScrollPosition:UITableViewScrollPositionTop animated:YES];

仅当内容大小大于视图高度时才允许 tableView 滚动..

如果您提供更高的行数,上述代码将起作用例如:15

【讨论】:

是的,如果你增加行数或节数,它就可以工作【参考方案3】:

cellForRowAt:中正确归档的文本添加标签

NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:[textField convertPoint:textField.frame.origin toView:self.tableView]];

当 textField 变为活动状态时,使用 scrollToRowAtIndexPath:atScrollPosition:animated:

用于滚动表格视图

【讨论】:

以上是关于选择文本字段时滚动表视图的主要内容,如果未能解决你的问题,请参考以下文章

编辑文本字段时偏移滚动视图?

滚动表格视图时隐藏文本字段数据

UIScrollView 在键盘关闭时停止滚动

滚动表格视图时,文本字段文本在其他文本字段上留下印象

滚动表格视图时删除的文本字段值?

滚动表格视图时文本字段为空