【发布时间】:2018-03-13 21:27:05
【问题描述】:
在我的分组 UITableView 中有 3 或 2 个部分(取决于数据源)。我正在尝试通过以下方式重新加载最后一部分:
dispatch_async(dispatch_get_main_queue(), ^{
[UIView performWithoutAnimation:^{
[feedDetailTB reloadSections:[NSIndexSet indexSetWithIndex:feedDetailTB.numberOfSections-1] withRowAnimation:UITableViewRowAnimationNone];
}];
});
首先,页脚永远不会消失。数据源基本上会跟踪是否有更多的 cmets(一个简单的加载更多功能)。在viewForFooterInSection我只是return nil,当所有的cmets都已经加载完毕。
但是,正如您在 GIF 中看到的那样,一开始loading 按钮会停留在那里。它甚至可以访问并且有效。当我向上滚动时,它消失了,可以在底部看到它,这是正确的。但是在重新加载所有 cmets 后,它应该会消失,但遗憾的是它仍然存在。
如果我使用reloadData,它可以正常工作。但我不能使用它,因为我还有其他部分,我不需要重新加载。
其次,即使我使用了UITableViewRowAnimationNone,行项目也会出现奇怪的动画/闪烁。在 GIF 中不可见
【问题讨论】:
-
“查看旧 cmets”是页脚视图?看起来您正在用“加载”替换它的文本。您能否使用显示“查看旧 cmets”的代码更新帖子
-
@SantosRamón 这是一个页脚视图,是的,我正在更新它的文本。但问题是
reloadSections不调用页脚视图,因此页脚没有使用适当的数据源重新加载 -
你需要重新处理这个问题。本质上,您是在要求我们解决问题,而我们不知道您做了什么。看起来您错误地更新了 tableview,但如果没有代码和更多细节,人们永远不会知道。
标签: ios objective-c uitableview