在removeObjectAtIndex和reloadData之后UITableView重新加载不正确

时间:2015-08-27 18:03:01

标签: objective-c xcode uitableview

我有NSMutableArray,其中包含来自removeObjectAtIndex的数据。

在数组上调用reloadData然后在表上调用 [_squadArray removeObjectAtIndex:myIndex; [[self tableView] reloadData]; 时,单元格被删除了,但滚动显示表格没有正确重新加载。

我使用的代码是:

cellForRowAtIndexPath

这是表格之后的样子:

enter image description here

仅供参考,桌子应该是满的,而不是停在哪里。

更新:- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *MyIdentifier; MyIdentifier = @"cell"; ClubSquadPlayerTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier]; PFObject *object = [_squadArray objectAtIndex:indexPath.row]; cell.playerNameLabel.text = [NSString stringWithFormat:@"%@ %@", [object valueForKey:@"first_name"], [object valueForKey:@"last_name"]]; cell.squadNumberLabel.text = [[object valueForKey:@"squad_number"] stringValue]; cell.positionLabel.text = [object valueForKey:@"position"]; if ([[object valueForKey:@"fitness_status"] isEqualToString:@"Fit"]) { cell.fitnessStatusImageView.image = [UIImage imageNamed:@"fit"]; } else if ([[object valueForKey:@"fitness_status"] isEqualToString:@"Doubtful"]) { cell.fitnessStatusImageView.image = [UIImage imageNamed:@"doubtful"]; } else if ([[object valueForKey:@"fitness_status"] isEqualToString:@"Injured"]) { cell.fitnessStatusImageView.image = [UIImage imageNamed:@"injured"]; } return cell; } 方法

lookUp()

2 个答案:

答案 0 :(得分:0)

在我看来,Parse's own UI可以解决您的问题。

UITableViewController的Parse UI版本是PFQueryTableViewController。您仍然可以使用自定义单元和插座,但控制器有点不同。

在这种情况下,您的问题将通过[yourTable loadObjects]功能解决,该功能允许您从PFQuery更新您的表格。

您直接从没有数组的PFQueryTableViewController设置PFQuery。查看更多here

答案 1 :(得分:0)

当您尝试删除对象时,我看到它有santax错误

您的代码是

     [_squadArray removeObjectAtIndex:myIndex;

[[self tableView] reloadData];

但它应该是

    [_squadArray removeObjectAtIndex:myIndex];

[[self tableView] reloadData];

有失踪