我已经将“加载”单元硬编码为我的表视图的最后一个单元格,当生成此单元时,我调用一些方法从Web服务加载新数据,当我得到响应时保存数据,发送通知并在我的表视图上调用reloadData。
我想做同样的事情,但是对于我桌子的第一个单元格。
我的表格与时间有关,因此向下滚动会显示较晚日期的项目,其目的是让用户向上滚动并加载较早的项目。
我似乎无法成功设置初始偏移量来隐藏此加载单元格,因为如果显示它,那么它当然会开始加载早期数据。我知道scrollToRowAtIndexPath:atScrollPosition:animated:
但我找不到合适的地方来调用它(使用索引路径:1:0第1行第0节)。
正如我之前提到的,我需要在调用任何单元格之前设置此可见部分。
有没有人在表格视图的开头尝试过这种单元格?
如何在第一个单元格被加载之前设置表格视图的初始可见部分?
我应该在这里做些什么吗?就像有一个tableviewHeader,当显示时我在索引路径0:0处插入一行,这是加载器,并在我reloadTable后删除它?
答案 0 :(得分:5)
我使用了contentInset,而不是viewDidLoad
中的偏移量。
[self.tableView setContentInset:UIEdgeInsetsMake(-50,0,0,0)];
当生成索引路径[0,0]的行时,我重置了插入,这发生在tableView:cellForRoWAtIndexPath:
[self.tableView setContentInset:UIEdgeInsetsMake(0,0,0,0)];
每次在表视图上传递reloadData之前,我都会重新插入内容:
- (void)reload{
[self.tableView setContentInset:UIEdgeInsetsMake(-50,0,0,0)];
[self.tableView reloadData];
}
这意味着我的加载单元格只能在查看时坐在屏幕上,当新数据进入并且表格重新加载时我将偏移量放回去。