hat schon einige mögliche Korrekturen durchsucht, aber alle haben meine nicht gelöst.
Ich klicke weiterhin auf die Zelle in der uitableview anstatt auf die Schaltflächen darin.
hier ist mein Code:
%Vor%Ich habe auch versucht% cco_de% für die Tasten und immer noch nicht funktioniert.
Danke.
Ich bin nur verwirrt von dieser Frage ....
Ich habe es geschafft, dieses Problem in einem Projekt zu beheben:
%Vor%Aber das gleiche hat nicht für ein anderes Projekt funktioniert. Ich habe keine Ahnung warum ...
Es gibt noch eine andere mögliche Ursache für Probleme wie diese, und das ist UITableViewCells
hat jetzt eine contentView
. Dies kann und wird vor anderen Ansichten in Ihren benutzerdefinierten Tabellenansichtszellen platziert, um Berührungen zu erkennen und die Zellenauswahl zu erkennen. Auf diese Weise können Berührungen von Ansichten dahinter blockiert werden. Ich habe diesen Ärger besonders bemerkt, als ich Zellen mit Nibs erstellte.
Das akzeptierte Mittel dafür ist sicherzustellen, dass alle Untersichten nicht zur Tabellenansichtszelle selbst, sondern zu ihrer contentView
hinzugefügt werden. Dies ist eine schreibgeschützte Eigenschaft, die unter bestimmten Umständen ihren eigenen Rahmen anpasst, z. B. wenn sie seitlich verschoben wird, um die Löschschaltfläche anzuzeigen, oder während des Bearbeitungsmodus. Sie sollten daher sicherstellen, dass alle Elemente, die Sie zu contentView
hinzufügen, intelligent skaliert sind und das richtige Größenänderungsverhalten aufweisen.
Beachten Sie auch, dass Sie durch das Hinzufügen von Zellen zu contentView
selbst Berührungen blockieren und so verhindern können, dass die Zelle ausgewählt wird. Ich persönlich versuche, die Zellenauswahl in Tabellenansichten nicht zuzulassen, die Zellen mit benutzerdefinierten benutzeraktivierten Steuerelementen enthalten. Es führt nur zu Verwirrung und unbeholfenen Schnittstellen. Tatsächlich denke ich ernsthaft darüber nach, alle UITableViews
in meinen zukünftigen Projekten durch UICollectionViews
zu ersetzen, die viel anpassungsfähiger sind.
-Ash
Für Swift 3 und Storyboard
Für mich musste ich mehrere Berührungspunkte in der Inhaltsansicht aktivieren und die Benutzerinteraktion für alles aktivieren - für die Tabellenansicht, die Tabellenansichtszelle, die Inhaltsansicht und die UIB-Taste. Ich habe ein Storyboard verwendet.
Ich habe auch meine Tableview-Zelle als Unterklasse eingerichtet.
Da ich hier keine Antwort finden konnte, als ich das Problem erkundete, habe ich eine weitere Frage zum Stapelüberlauf gestellt. Sie können meinen Code sehen und ein Projekt herunterladen, indem Sie hier arbeiten: Kann ich nicht auf die Schaltfläche in UITableViewCell klicken?
Ich bin auf dieses Problem gestoßen, aber in meinem Fall hatte es nichts mit der Tabellenansicht zu tun, sondern weil ich Subviews in meiner Schaltfläche verwendet habe, für die userInteractionEnabled
wahr war, indem ich diesen Wert für false (NO) festlegte Alle Unteransichten der Schaltfläche haben das Problem für mich behoben.
Erstellen Sie eine benutzerdefinierte UITableViewCell. Siehe diesen Link .
Angenommen, Sie haben UIButton
mit dem Namen displayButton, können Sie Folgendes tun:
In Ihrem - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
, nachdem Sie Ihre Zelle erstellt haben,
Und erstellen Sie die Methode wie in Ihrem ViewController:
%Vor%Ich habe das gemacht:
%Vor%Und es scheint, dass das Aufrufen der addTarget-Methode innerhalb der Schließung nicht funktioniert hat. Wenn ich die addTarget-Methode faktorisiert und stattdessen in den Initialisierer eingefügt habe, hat alles funktioniert!
Tags und Links iphone uitableview ios uibutton uitapgesturerecognizer