什么是更可靠的方法来重新加载UITableView数据



我找到了 2 个函数来重新加载我的 UITableView 行

第一。

    [tableView reloadRowsAtIndexPaths:[tableView indexPathsForVisibleRows] 
                 withRowAnimation:UITableViewRowAnimationNone];

第二。

    [tableView reloadData];

重新加载UITableView数据的更具体方法是什么

两者都是"可靠的",也可能是"特定的"(取决于你所说的具体是什么意思)——事实上,还有更多方法:

reloadData
reloadRowsAtIndexPaths:withRowAnimation:
reloadSections:withRowAnimation:
reloadSectionIndexTitles

查看开发人员文档 (https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableView_Class/index.html) 以了解差异,但简短的回答是它们都是可靠的 - 它只是取决于您要重新加载多少信息,以及您是否要使用动画来执行此操作。

例如,如果只想重新加载某些行,则可以使用 reloadRowsAtIndexPaths:withRowAnimation: 。 如果要重新加载整个部分,请使用 reloadSections:withRowAnimation:

这个答案可能有两种情况,

a) 您的表格至少包含一个部分(带有标题或返回部分的视图)

  • 在这种情况下,如果您调用reloadData那么它也将重新加载部分。但是reloadRowsAtIndexPaths:withRowAnimation:只会重新加载可见单元格,而不会重新加载该部分。

b) 您的表格至少包含一个部分(没有标题或返回部分的视图)

  • 在这种情况下,如果您调用reloadDatareloadRowsAtIndexPaths:withRowAnimation:则两者都将仅重新加载可见单元格。

那么哪一个更好呢?

  • 正如我所解释的,根据情况,您应该调用任一方法。如果您有不想重新加载的部分,则应调用reloadRowsAtIndexPaths:withRowAnimation:方法。或者,如果您想与部分一起重新加载单元格,则应调用reloadData方法。

最新更新