3

我已将“加载”单元格硬编码为表格视图的最后一个单元格,生成此单元格时,我会调用一些方法从 Web 服务加载新数据,并在收到响应时保存数据,发送通知并在我的表格视图上调用 reloadData。

我想做同样的事情,但我的表格的第一个单元格。

我的表格是时间函数,因此向下滚动会显示较晚日期的项目,其想法是让用户滚动更高并加载较早的项目。

我似乎无法成功设置初始偏移量来隐藏这个加载单元,因为如果它被显示,那么它当然会开始加载早期的数据。我知道,scrollToRowAtIndexPath:atScrollPosition:animated:但找不到合适的位置来调用它(索引路径:1:0 第 1 行第 0 节)。

正如我之前提到的,我需要在调用创建任何单元格之前设置此可见部分。

有没有人在表格视图的开头尝试过这种单元格?

如何在第一个单元格甚至被调用加载之前设置我的表格视图的初始可见部分?

我应该在这里做一些更花哨的事情吗?就像有一个 tableviewHeader 一样,当它显示时,我在索引路径 0:0 处插入一行,这是加载器,并在我 reloadTable 后将其删除?

4

1 回答 1

6

我使用了 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];
}

这意味着我的加载单元只有在查看时才会出现在屏幕上,当新数据进入并重新加载表格时,我会将偏移量放回去。

于 2012-05-17T18:41:49.077 回答