在不同需求下對(duì)tableView的刷新要求經(jīng)常不一樣,下面從不同程度上寫一下tableView的刷新:
-
整體刷新:
[_tableView reloadData];
-
section部分刷新:
- (void)reloadSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation NS_AVAILABLE_IOS(3_0); [self.tableView beginUpdates]; [self.tableView reloadSections:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(2, 1)] withRowAnimation:UITableViewRowAnimationNone]; [self.tableView endUpdates]; //從位置為2的section開始刷新1個(gè)section
-
單獨(dú)某條cell刷新:
- (void)reloadRowsAtIndexPaths:(NSArray<NSIndexPath *> *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation NS_AVAILABLE_IOS(3_0); [_tableView reloadRowsAtIndexPaths:@[[NSIndexPath indexPathForRow: 5 inSection:0]] withRowAnimation:UITableViewRowAnimationNone]; //刷新第0組第5條cell
其他
insertSections豌研、deleteSections、moveSection半沽; insertRowsAtIndexPaths瞻润、deleteRowsAtIndexPaths、moveRowAtIndexPath 都與 reload 類似鸡挠。
插入/刪除/移動(dòng)操作一般與以下方法配合使用
- (void)insertObject:(ObjectType)anObject atIndex:(NSUInteger)index;
- (void)removeObjectAtIndex:(NSUInteger)index;
- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(ObjectType)anObject;