2015-01-13 2 views
-1

Таким образом, удаление ячейки со списком таблиц довольно прямолинейно. Вы удаляете объект из массива и перезагружаете данные табличных представлений. Теперь ... У меня есть табличное представление, которое заполняется из NSMutableDictionary, а не массивом (нам нужно, потому что мы разбираем данные и сохраняем их). Кто-нибудь знает, как удалить ячейку с помощью этого метода? Я пробовал просто позвонить [tableView reloadData];, который неожиданно сработал, но, очевидно, создал бесконечный цикл. Мне не нравятся бесконечные циклы. У кого-нибудь есть предложения? Я не мог найти никакой важной информации в своих исследованиях.Удаление ячейки TableView, заполненной словарем

Это некоторый соответствующий код в cellForRowAtIndexPath делегата:

 if (![frString isEqual:@"COOL STUFF"] && [subString isEqualToString:@"COOL"]) { 
      NSLog(@"A COOL is showing where it shouldn't, and it's %@", subString); 
      //remove all cells starting with COOL 

      [myDictionary removeObjectForKey:[self.dictName objectAtIndex:row]]; 
      [tableView reloadData]; 

     } 

Кроме того, я бы предпочел скрыть ячейку вместо постоянно извлекать информацию из словаря. Это возможно?

+0

Вы должны изменить источник данных * до того, как 'reloadData' будет выполнен, чтобы обновить представление. Как только вы попадете в «cellForRow ...», уже слишком поздно. –

ответ

1

Есть несколько вещей, которые вы делаете неправильно:

  • Вы не должны удалить строки в cellForRowAtIndexPath, потому что это называется, когда TableView хочет, чтобы сделать. Таким образом, вы удаляете строку, а затем снова визуализируете, вызывает cellForRowAtIndexPath:, ...
  • Либо удалите строки, либо перезагрузите данные. deleteRowsAtIndexPaths: удаляет наборы строк с анимацией, reloadData перезаряжает весь Tableview, поэтому он отменяет анимацию, и deleteRowsAtIndexPaths: становится pointlesss
  • Убедитесь, что вы возвращаетесь надлежащее numberOfRowsInSection: вы удалите данные из словаря?
+0

А я понимаю ... Поэтому я должен назвать это, в котором метод делегата? – John

+0

Что вызывает удаление ячеек? – Julien

+0

Пока ничего. Это не редактируемый вид таблицы. Вы знаете, есть ли способ скрыть ячейку, а не удалять информацию из моего словаря? – John

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