編集モードでセルの内容を編集するためにUITextFieldが追加されたUITableViewCellのサブクラスがあります。カスタムセルの実装では、次のようにsetEditingをオーバーライドしました。
-(void)setEditing:(BOOL)editing animated:(BOOL)animated
{
if ([self.textField isFirstResponder])
[self.textField resignFirstResponder];
NSLog(@"%@",self.textLabel.text);
if (editing) {
self.textLabel.hidden = YES;
self.textField.hidden = NO;
}else{
self.textLabel.hidden = NO;
self.textField.hidden = YES;
}
[super setEditing:editing animated:animated];
}
そして、初めてsetEditingを呼び出すと、すべて編集モードになります。しかし、セルを変更しようとして、このセルが画面外に出て「完了」ボタンをタップした場合、セルはまだ編集モードのままです。画面外に出たセルのみ。[完了]ボタンをタップしたときに画面に表示されている場合は、正常に機能します。
これが問題をよりよく説明するためのビデオです:Dropboxのビデオ