2 つの変更可能な配列があるとします。次のコードがあります。
- (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」はまったく呼び出されず (!)、セルは画面から削除されます!
反応: なに?
その場でテーブルビューを無効にする方法を誰でも助けることができます(セルをスクロールしてスクロールするのではなく:))!
前もって感謝します!