刷新指定的cell

在我们处理网络请求时,请求后经常用到的是:

[tableView reloadData];

这样是刷新整个tableView.今天写的东西,用来刷新指定的cell

一: 创建tableView

  • 1 创建UITableView
UITableView *machineTable = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 200, 200); style:UITableViewStylePlain];
self.machineTable = machineTable;
  • 2 初始化tableView, CJTableViewCell 为自定义的cell

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
   {
     static NSString *CJTableViewCell = @"CJTableViewCell";
     if (cell == nil) {
       cell = [[[NSBundle mainBundle] loadNibNamed:@"CJTableViewCell" owner:self options:nil] lastObject];
   }
     return cell;
}

二: 刷新指定的cell

  • 1 获取indexPath
 NSArray *visiblePaths = [self.machineTable indexPathsForVisibleRows];
  • 2 遍历,并刷新指定cell
       for (NSIndexPath *indexPath in visiblePaths)
       {    
           //获取到的indexpath为屏幕上的cell的indexpath
            if (indexPath.row == 0)
            {
               self.indexP = indexPath;
               // 获取指定位置的cell
               CJTableViewCell *cell0 = [self.machineTable cellForRowAtIndexPath:indexPath];
              // 刷新
               [self.machineTable reloadRowsAtIndexPaths:[NSArray arrayWithObjects:self.indexP,nil] withRowAnimation:UITableViewRowAnimationNone];
            }
       }

你可能感兴趣的:(刷新指定的cell)