我在 UITableViewController 中,单元格内有文本字段。当用户单击文本字段时,我实现 UITextFieldDelegate,并在方法 textFieldDidBeganEditing 中确定单元格的索引并滚动到该位置。它适用于除最后 4-5 个单元之外的所有单元。我究竟做错了什么?谢谢。
在 IndexPath 处滚动到行:方法将单元格滚动到UITableView 滚动位置顶部 or UITableView 滚动位置 中间仅当tableView的内容大小足够大,可以将单元带到这些位置。如果您尝试滚动到顶部或中间的单元格是最后一个单元格或最后几个单元格中的单元格,则无法滚动到中间或顶部。在这些情况下,您需要计算内容偏移量手动处理这些单元格。
编辑 - 计算 contentOffset:
为了计算内容偏移量使用@Schoob指定的方法。将以下代码放入您的文本字段已开始编辑 method.
CGPoint origin = textField.frame.origin;
CGPoint point = [textField.superview convertPoint:origin toView:self.tableView];
float navBarHeight = self.navigationController.navigationBar.frame.size.height;
CGPoint offset = tableView.contentOffset;
// Adjust the below value as you need
offset.y += (point.y - navBarHeight);
[tableView setContentOffset:o animated:YES];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)