Custom UITableViewCell, Schaltfläche in der Zelle funktioniert nicht
Habe ich ein UITableViewController, wo arbeite ich mit einem custom UITableViewCell. Enthält die Zelle ein Bild, Beschriftungen und Schaltflächen. Alles wie erwartet funktioniert außer die Tasten. Wenn Sie die-Taste drücken, geschieht nichts. Nur in die Zelle wird ausgewählt.
Ich habe eine Verbindung bei der IB von der Taste, um my custom TweetTableViewCell Klasse.
@property (weak, nonatomic) IBOutlet UIButton *cellFollowButton;
- (IBAction)followButtonTappedonCell:(id)sender;
Ich Schreibe etwas text auf der Konsole in meinem followButtonTappedonCell Aktion. Aber wenn Sie die-Taste drücken, geschieht nichts. Es scheint mir, dass einige sehen, verbraucht das Tippen, bevor es kommt auf die Schaltfläche. Um es mehr verwirrend... Wenn ich eine Schaltfläche hinzufügen im Mai UITableViewController ein Programm wie dieses:
[cell.cellFollowButton addTarget:self action:@selector(customActionPressed) forControlEvents:UIControlEventTouchDown];
[cell addSubview:cell.cellFollowButton];
...es funktioniert einfach.
Ich habe in anderen Artikeln gelesen, dass die Deaktivierung von "Benutzer-Interaktion Aktiviert" gelöst, die ähnliche Probleme, aber es funktioniert nicht in meinem Fall.
Ich bin mir sicher, dass viele andere dieses problem ausführen, wenn Sie die Schaltflächen auf UITableViewCells. Jede Hilfe wird sehr geschätzt.
Ich bin mit Xcode 5 für iOS 7.
- haben Sie versucht
UIControlEventTouchUpInside
stattUIControlEventTouchDown
? - Ja, es funktioniert mit 'UIControlEventTouchUpInside'. Wie bereits erwähnt, ist das hinzufügen der Schaltfläche Programm funktioniert einwandfrei. Aber bei der Verwendung von IB nur zum Anschluss der Taste für eine Aktion, die Aktion wird nie genannt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde empfehlen, Sie gehen durch dieser link. Es hat klare Beschreibung des Problems. Allerdings habe ich versucht, zu extrahieren, benötigt Informationen.
Viele Arten von Veranstaltungen verlassen Sie sich auf eine responder-Kette für Ereignis-Lieferung. Die responder-Kette ist eine Reihe von verknüpften responder-Objekten. Es beginnt mit dem first responder und endet mit dem application-Objekt. Wenn der first responder nicht ein Ereignis zu behandeln, leitet er den Fall an die nächste responder in der responder-Kette.
Ein responder-Objekt ist ein Objekt, das Antworten kann, und die Ereignisse verarbeiten. Die Klasse UIResponder ist die Basisklasse für alle responder-Objekte, und es definiert die programmierbare Schnittstelle, die nicht nur für event-handling, aber auch für common-responder-Verhalten. Instanzen der UIApplication, UIViewController und UIView-Klassen sind-Responder, was bedeutet, dass alle Ansichten und die meisten key controller-Objekte ansprechen.
In Ihrem Fall, beim schreiben von Ereignis-Methoden in Ihrem customTableViewCell Klasse, Ihre Methoden werden nicht aufgerufen. dies ist, weil, TableViewCell ist nicht die Teilnahme in der Responder-Kette.
nächste Sache ist, überprüfen Sie, ob "User-Interaktion aktiviert ist" oder nicht für Ihr Handy. Sie finden es unter "Ansicht" im Abschnitt "Attribute inspector".
Wenn Ihr Handy ist in eine Feder, stellen Sie sicher, dass das root-Objekt ist eine UITableViewCell und NICHT ein UIView