UIButton in UITableViewCell wird nicht durch Tippen markiert

9

Das Problem: Wenn ein Benutzer in einer UITableViewCell auf eine UIButton tippt, wird die Schaltfläche nur bei einem langen Tippen und nicht bei einem schnellen Tippen hervorgehoben. Das gewünschte Verhalten für diese Schaltfläche unabhängig von der Tap-Dauer hervorzuheben.

Leider: Das Setzen von delaysContentTouches auf NO in einem UIScrollView oder UITableView ist keine Option wegen anderer unerwünschter Nebenwirkungen.

Also: Wie kann ich das umgehen? Gibt es eine Möglichkeit, Berührungen an die Schaltfläche weiterzuleiten und den Wert delaysContentTouches zu umgehen?

    
Jordan Smith 11.02.2014, 23:11
quelle

4 Antworten

0

Setzen Sie das Tag der Schaltfläche in der Prototypzelle auf "1".

In Ihrem cellForRowAtIndexPath sollten Sie den UIButton mit einer Methode verknüpfen:

%Vor%

Dann in der Methode ist alles, was Sie tun:

%Vor%

Dies wird keine Verzögerung hinzufügen, bevor es den Code ausführt.

    
Mika 11.02.2014 23:48
quelle
0

Sie müssen eine UIButton-Kategorie erstellen (oder eine Unterklasse, wenn Sie nicht alle anderen Schaltflächen beeinflussen möchten) und in touchesBegan highlight = YES setzen.

Siehe den Code in dieser Antwort für eine Beispielimplementierung.

    
Guillaume Boudreau 11.07.2014 20:14
quelle
0

Das hat für mich funktioniert:

%Vor%     
Jonguo 13.10.2015 10:58
quelle
0

Verwenden Sie den Hauptthread.

%Vor%     
doxsi 25.07.2017 09:34
quelle