在我们处理网络请求时,请求后经常用到的是:
[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];
}
}