2015-08-27 4 views
0

У меня есть UITableView, который имеет данные от NSMutableArray.UITableView перезагружается неправильно после удаленияObjectAtIndex и reloadData

При вызове removeObjectAtIndex на массив, а затем reloadData на столе, ячейка удалена в порядке, но затем прокрутка показывает, что таблица не перезагрузилась должным образом.

код я использую:

[_squadArray removeObjectAtIndex:myIndex; 

    [[self tableView] reloadData]; 

Это то, что таблица выглядит впоследствии:

enter image description here

FYI, таблица должна быть заполнена и не останавливаться, где он останавливается.

Update: cellForRowAtIndexPath метод

- (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; 
} 
+1

Можете ли вы показать нам метод cellForRowAtIndex? Кроме того, вы разрешаете пользователю удалять элементы из таблицыView или вы делаете это каким-то другим способом? наконец - метод numberOfRowsInSection, который я предполагаю, получает его счет из свойства myArray? – Tander

+0

, пожалуйста, отправьте метод cellforindexpath – Vig

+0

Благодарим вас за ввод. Уточните первоначальный вопрос. Пользователи могут удалять элементы с помощью стандартного салфетки для удаления. И да, количество массивов задает количество строк. – nickjf89

ответ

0

Мне кажется, что Ваши проблемы могут быть решены с помощью Parse's own UI.

Версия пользовательского интерфейса Parse UITableViewController - это PFQueryTableViewController. Вы все равно можете использовать свои собственные ячейки и выходы, но контроллер немного отличается.

В этом случае ваша проблема будет решена с помощью функции [yourTable loadObjects], которая позволяет обновлять таблицу с PFQuery.

Вы установили PFQueryTableViewController непосредственно из PFQuery без массивов. См. Больше here.

0

При попытке удалить объект, как я увидел, что есть ошибка santax

Ваш код

 [_squadArray removeObjectAtIndex:myIndex; 

[[self tableView] reloadData]; 

Но это должно быть

[_squadArray removeObjectAtIndex:myIndex]; 

[[self tableView] reloadData]; 

Там были] отсутствует

+0

Это была опечатка. Спасибо, хотя – nickjf89

Смежные вопросы