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?
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.
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.
Tags und Links objective-c iphone ios ipad uibutton