我的表格视图滚动到底部时遇到问题。我试图搜索堆栈溢出以寻找解决方案,但没有任何帮助。
这就是我所拥有的:我有一个表格视图,每次用户滚动到它的底部时,我都会将额外的单元格加载到其中。我这样做如下:
- (void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row == ([self.tableView numberOfRowsInSection:0] - 1))
//load more data..
}
通过互联网连接成功加载数据后,我正在调用[self.tableView reloadData]
刷新表并增加其大小。
现在问题来了:当用户选择一个单元格时,会显示一个详细信息视图控制器。我注意到在显示详细信息视图之前,表格会快速调整为其原始大小,仅显示内部单元格的初始数量。
当详细信息视图被关闭时,表格视图恢复到其原始大小(不适合加载的数据willDisplayCell: forRowAtIndexPath:
),并且无法向下滚动直到所有数据结束。
我检查了所有这些要点,但没有任何帮助:
- 通过调用
[self.tableView reloadData]
inviewWillAppear
方法重新加载表视图中的数据。 - 表视图的
delegate
anddataSource
已正确设置为容器视图控制器。 - 当视图再次出现时检查调用
tableView: numberOfRowsInSection:
,它返回我拥有的所有数据的确切数量,但问题在于表中的大小不适合我的总数据。
我还尝试如下调整表格框架的大小:
CGRect frame = self.tableView.frame;
frame.size.height = self.tableView.contentSize.height;
self.tableView.frame = frame;
但没有任何改变。
请问有什么帮助吗??
更新:我在didSelectRowAtIndexPath
. 代码很简单:
- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
DetailsViewController *vc=[[DetailsViewController alloc]initWithNibName:@"DetailsViewController" bundle:nil];
[self presentViewController:vc animated:YES completion:nil];
}