1

我首先制作了一个包含 5 个部分的 UITableView,每个部分 3 行。第一行是标题,第二行是图片,第三行是页脚,数据来自网络,包含每个单元的标题、图片、页脚。因为数据量大,所以我通过向上拖动UITableView的底部来进行分页,通过向下拖动UITableView的顶部来进行上一页。它就像 9GAG 阅读器一样工作。我也想在换页时为 9GAG Reader 制作相同的动画,动画是-

.当下一页准备好时,它会滚动到我做的下一页,工作正常。.下一页完成后,上一页将被删除。

对于每一页,有 5 个部分,所以我是这样做的 - 我先在页面添加 5 个部分,如果转到下一页,将添加 5 个部分,然后滚动到第 5 个部分,所以滚动动画正在工作好。

但是对于下一部分,我删除了0-4个部分后,其余部分的位置发生了变化,这是一个问题。我想固定下一页的位置,我该怎么做?

// here expend to 2 page, 10 sections, and then scroll to the next page
self.totalSections = TOTAL_SECTIONS * 2;       
[self.mainContent reloadData];
[self.mainContent scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:TOTAL_SECTIONS] atScrollPosition:UITableViewScrollPositionTop animated:YES];

// here delete the 0-5 sections, the previous page, but postion is changed..
NSIndexSet *deletes = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, 5)];
self.totalSections = TOTAL_SECTIONS;
[self.mainContent deleteSections:deletes withRowAnimation:UITableViewRowAnimationNone]; 
4

2 回答 2

1

我是 9Gag Reader 的两位开发者之一,我不是做这部分的人,但我知道它是如何工作的。我认为你这样做的方式有点太复杂了。为了创建您正在搜索重新创建的效果,我们截取 tableview 的屏幕截图并使用它来执行允许我们不添加/删除可能导致崩溃的行的效果,我们只是重新加载内容。

我希望它会有所帮助,它不适用于 9Gag Reader 克隆:p!告诉我们您的应用何时上线(查看 iTunes 页面上的联系地址);)

问候,

亚瑟@Appinest

于 2012-06-11T12:46:46.017 回答
-2

我解决了这个问题,看起来这个序列真的很酷 -

self.totalSections = TOTAL_SECTIONS * 2;       
[self.mainContent reloadData];

[self prepareCellCacheTitle:0];

NSIndexSet *deletes = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, 5)];

self.totalSections = TOTAL_SECTIONS;

[self.mainContent deleteSections:deletes withRowAnimation:UITableViewRowAnimationNone];

[self.mainContent reloadData];

[self.mainContent scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:YES];
于 2012-06-11T12:21:49.570 回答