我想在加载完成后更改表的偏移量,该偏移量取决于加载到表上的单元格数量.
在SDK上是否可以知道uitableview加载何时完成?我在委托和数据源协议上都看不到任何东西.
我不能使用数据源的计数,因为只加载了可见的单元格.
我想在加载完成后更改表的偏移量,该偏移量取决于加载到表上的单元格数量.
在SDK上是否可以知道uitableview加载何时完成?我在委托和数据源协议上都看不到任何东西.
我不能使用数据源的计数,因为只加载了可见的单元格.
改进为@RichX答案:
lastRow
可以是[tableView numberOfRowsInSection: 0] - 1
或((NSIndexPath*)[[tableView indexPathsForVisibleRows] lastObject]).row
.
因此,代码将为:
-(void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
if([indexPath row] == ((NSIndexPath*)[[tableView indexPathsForVisibleRows] lastObject]).row){
//end of loading
//for example [activityIndicator stopAnimating];
}
}
UPDATE:
嗯,@htafoya的 comments 是对的.如果您希望此代码检测从源加载所有数据的结束,它不会检测,但这不是最初的问题.此代码用于检测何时显示所有应该可见的单元格.这里使用willDisplayCell:
是为了使用户界面更流畅(单元格通常在willDisplay:
呼叫后快速显示).你也可以用tableView:didEndDisplayingCell:
试试.