Wenn Sie eine Gestenerkennung verwendet haben, versuchen Sie, sie zu entfernen, und prüfen Sie, ob das Problem verursacht wurde oder nicht?
Andere weise
Nicht sicher aber Das Problem könnte in UITableView
has delaysContentTouches
aktiviert sein ON . Schalten Sie dieses AUS aus, damit Berührungen schneller zu den Zellen gelangen.
Ich hatte genau die gleichen Probleme:
Meine Lösung zum Auswählen einer Zelle in der Tabellenansicht durch kurzes Antippen (drücken):
In meiner Situation hatte ich einen UITapGestureRecognizer in meiner Ansicht zum Ausblenden meiner Tastatur.
Das hat das Problem gelöst:
%Vor%Sie müssen UILongPressGesture zur Ansicht Ihrer Zelle hinzufügen und in Brand setzen Sie einfach didSelectRowAtIndexPath (besser wird es sein, eine andere Methode aufzurufen - nicht die Standardmethode von UITableViewDelegate) von Ihrer Klasse, die UITableViewDelegate annimmt.
Ich schlage vor, Sie erstellen ein eigenes Protokoll, von UITableViewDelegate geerbt, fügen Sie dort Methode für lange Presse Verhaltensmethode und genießen. Ähnliches wie:
%Vor%Ihr Delegierter würde in diesem Fall nicht den Standard UITableViewDelegate übernehmen, sondern diesen. Außerdem müssen Sie eine eigene Zelle erstellen (von UITableViewCell geerbt) und dort eine Delegate-Eigenschaft (ID) hinzufügen, die beim langen Drücken von gefeuert verwendet wird.
Es kann auch vorkommen, dass der Standard didSelectRowAtIndexPath ausgelöst wird, bevor Sie lange drücken, also schlage ich vor, das Standardauswahlverhalten für die Tabellenansicht zu deaktivieren:
%Vor%Tags und Links objective-c iphone ios tableview long-press