Подтвердить что ты не робот

Как обновить UITableVIewCell без перезагрузки полной таблицы

Возможный дубликат:
Возможно ли обновить один UITableViewCell в UITableView?

В последовательности я обновляю только определенный объект в своих данных списка (NSMUtableArray), после обновления его значения. Чтобы сделать обновление GUI, я перезагрузил полную таблицу, как показано ниже...

[table reloadData];

Он работал нормально, но в точке эффективности он немного висит, пока я прокручиваю, есть ли способ обновить только конкретную ячейку без перезагрузки полной таблицы?

спасибо.

4b9b3361

Ответ 1

 - (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation;

Используйте этот

Ответ 2

Вы можете использовать это.

NSArray *indexPathArray = [NSArray arrayWithObject:[NSIndexPath indexPathForRow:1 inSection:0]];
//You can add one or more indexPath in this array...

[tblview reloadRowsAtIndexPaths:indexPathArray withRowAnimation:UITableViewRowAnimationFade];

Ответ 3

Вы можете перезагрузить определенную строку изображения с помощью указательного пути.

    [mainTableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
                         withRowAnimation:UITableViewRowAnimationNone];

Ответ 4

Как вы делаете обновление GUI, лучше использовать reloadData, а затем использовать любые другие методы. reloadData - лучший способ в вашем случае обновить UITableView, поскольку он избегает несогласованности. Другая вещь, которую вы можете сделать, - добавить условие в свой cellForRowAtIndexPath, и выполнить выполнение только для измененной ячейки.

Ответ 5

Вы можете получить объект ячейки с помощью

UITableViewCell *cell = [table cellForRowAtIndexPath:indexPath];

теперь изменить свои связанные значения в соответствии с вашим объектом из массива данных. Он должен отразиться в таблице. Надеюсь, это поможет.

Ответ 6

Если вы просто добавляете один элемент и хотите добавить его в таблицу, вы можете вручную вставить его в свой UITableView, вот пример:

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:_directions.count-1 inSection:0];
NSArray *indexPaths = [NSArray arrayWithObject:indexPath];
[self.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:YES];