-[UITableViewCell setEditing:animated:] が呼び出されるタイミングは次の3つ。
1. 明示的にメソッドを呼び出した時
[cell setEditing:YES animated:YES]
2. セルが載っている UITableView で setEditing:animated: が呼ばれた時
[self.tableView setEiditing:YES animated:YES]
3. 隠れていたセルが表示される時
- - - -
3. が曲者。てっきり 1, 2のケースだけだと思い込んでセル上の編集モードに入った時の初期化コードを書いておいたら、意図せず毎回初期化されてハマってしまった。UITableView でスクロールなどした時に隠れていたセルが表示されるタイミングで setEditingの値に関係なく必ず呼び出される。通常 UITableViewCell は再利用されるので、編集モードを正しく保つために毎回呼び出しているのだと思われる。
Responses
Leave a Response