Позвольте иметь два изменяемых массива, и давайте иметь следующий код:
- (void)viewDidLoad
{
NSMutableArray *A = [[NSMutableArray alloc] init];
NSMutableArray *B = [[NSMutableArray alloc] init];
// fill up A
// B remains empty
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// ...
if (...)
{
// fill up the cell with datas of an object from A
}
else
{
// fill up the cell with datas of an object from B
}
//...
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (...)
{
// remove an object from A and put it in B
}
else
{
// remove an object from B and put in A
}
[tableView reloadData];
}
Если [tableView reloadData] закомментировано (// [tableView reloadData]), то после «щелчка» таблица не будет признана недействительной, как и ожидалось. И если текущая ячейка прокручивается и прокручивается на экране снова, вызывается «cellForRowAtIndexPath», и ячейка «рисуется» в соответствии с тем, из какого массива должен быть получен его контент.
Но если [tableView reloadData] активен, а cellForRowAtIndexPath не вызывается вообще (!) И ячейка удаляется с экрана!
реакция: ЧТО?
Может ли кто-нибудь помочь мне, как аннулировать просмотр таблицы на лету (не прокручивая ячейку и вставляя :))!
Заранее спасибо!