20

Wenn ich eine Gestenerkenner zu einer Tabellenzelle hinzufügen cell genannt, zB:Muss ich eine Gestenerkennung freigeben?

UILongPressGestureRecognizer *_longPressRecognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(cellGestureRecognized:)]; 
_longPressRecognizer.allowableMovement = 20; 
_longPressRecognizer.minimumPressDuration = 1.0f; 
[cell addGestureRecognizer:_longPressRecognizer]; 
[_longPressRecognizer release], _longPressRecognizer = nil; 

Muss ich manuell -removeGestureRecognizer: an einem gewissen Punkt auf dieser Zelle nennen, oder funktioniert die Gestenerkenner erhalten entfernt und für mich freigegeben, wenn Die Zelle wird nicht mehr benutzt?

+0

Zu beachten ist, dass die Zielaktion standardmäßig nicht stark ist. http://StackOverflow.com/a/21578346/1418457 – onmyway133

Antwort

41

Die Gestenerkenner werden einem internen NSMutableArray der Ansicht hinzugefügt. Dieses Array wird freigegeben, sobald die Ansicht freigegeben wird. Daher muss -removeGestureRecognizer: nicht manuell aufgerufen werden.

+0

Vielen Dank, sehr geschätzt. –