选择文本字段时滚动表视图
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:
用于滚动表格视图
【讨论】:
以上是关于选择文本字段时滚动表视图的主要内容,如果未能解决你的问题,请参考以下文章