Перезагрузите определенную ячейку UITableView в iOS - PullRequest
23 голосов
/ 12 августа 2011

У меня есть UITableView.Я хочу обновить данные таблицы на основе сделанного выбора.Прямо сейчас я использую [mytable reloadData];Я хочу знать, есть ли способ, где я могу просто обновить конкретную ячейку, которая выбрана.Могу ли я изменить с помощью NSIndexPath или других?Есть предложения?

Спасибо.

Ответы [ 3 ]

64 голосов
/ 12 августа 2011

Для iOS 3.0 и выше, вам просто нужно позвонить:

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

Чтобы перезагрузить строку 3 раздела 2 и строку 4 раздела 3, например, вам нужно будет сделать это:

// Build the two index paths
NSIndexPath* indexPath1 = [NSIndexPath indexPathForRow:3 inSection:2];
NSIndexPath* indexPath2 = [NSIndexPath indexPathForRow:4 inSection:3];
// Add them in an index path array
NSArray* indexArray = [NSArray arrayWithObjects:indexPath1, indexPath2, nil];
// Launch reload for the two index path
[self.tableView reloadRowsAtIndexPaths:indexArray withRowAnimation:UITableViewRowAnimationFade];
6 голосов
/ 12 августа 2011

Вы также можете получить ссылку на объект UITableViewCell и изменить его метки и т. Д.

UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
cell.textLabel.text = @"Hey, I've changed!";
2 голосов
/ 12 августа 2011

Я думаю, что вы ищете этот метод UITableView:

 - (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...