我的表格视图滚动到底部有问题。我试图搜索堆栈溢出的解决方案但没有任何帮助。
以下是我所拥有的: 我有一个表视图,每次用户滚动到底部时,我都会加载额外的单元格。我这样做了:
- (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:
上加载的数据),并且无法向下滚动直到所有数据结束。< / p>
我检查了所有这些要点,但没有任何帮助:
[self.tableView reloadData]
方法调用viewWillAppear
重新加载表格视图中的数据。delegate
和dataSource
已正确设置到容器视图控制器。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];
}
答案 0 :(得分:0)
编写uiscrollview的委托方法
- (void) scrollViewDidScroll:(UIScrollView *)scrollView
{
if (scrollView == scrollObj) {
CGFloat scrollPosition = scrollObj.contentSize.height - scrollObj.frame.size.height - scrollObj.contentOffset.y;
if (scrollPosition < 30) {
if ((!spinnerBottom.isAnimating) || intGetDataCallRunning == 0) {
//[spinnerBottom startAnimating];
//[self getLoginFollowingUserVideosCall];
//run WebService call and after that reload the table or if you have data exists then only reload the table
//and after reloading table follow step no 5.
}
}
}
}
重新加载表的表集高度并滚动
tblVideo.frame = CGRectMake(0, 0, 320, tblVideo.contentSize.height);
scrollObj.contentSize = CGSizeMake(320,tblVideo.contentSize.height+60);