2016-04-19 20 views
1

Ich habe eine einfache Tabellenansicht, die wie folgt aussieht enter image description hereGet Taste auf UITableView in Swift

Jede Taste einen Teil zur nächsten Zelle überläuft (Teil der Anforderung).

Ich möchte, dass Überlaufknopf Klick Ereignis. Wie bekomme ich das?

Standardmäßig wird es als Zell-Klick statt als Klick-Klick genommen, wenn ich auf diesen überlaufenden Teil klicke.

Ich habe eine dummy code erstellt, die Knopffarbe beim Klicken ändert, so dass es für jemanden leicht ist, es auszuprobieren. Gleiches Layout.

Dank

EDIT

Im Folgenden wird das Originalbild, was ich versuche, aus Gründen der Einfachheit zu tun, ich es skaliert auf eine Taste gedrückt erf Nehmen wir an, wird u cant Höhe ändern und kippe Spiel um Tabellenansicht Separators

enter image description here

+0

Hat ein Segue nur die Tabellenansicht Zelle ausführen klicken? – rigdonmr

+0

Setzen Sie den Tag für den Knopf jeder Zelle. Dann in Button Action nach dem Tag suchen und die Aktion ausführen. –

+0

@rigdonmr keine Überleitung, Balaji, aber es geht nicht Button Check, Überprüfung Tag kommt später –

Antwort

1

Sie haben zu implementieren ‚Tableview: heightForRowAtIndexPath:` Methode und mehr Wert zurück, als es jetzt hat. Ihre Zellen haben nicht genug Höhe, um Schaltflächen vollständig anzuzeigen, und deshalb versteckt sich ein Teil Ihrer Schaltfläche hinter der nächsten Zelle. Sie können leicht davon überzeugt werden, indem Sie im Interface-Builder das Kontrollkästchen "Unteransichten abschneiden" Ihres Zellprototyps aktivieren und wenn Sie sehen, dass Schaltflächen abgeschnitten werden.


EDIT

prüfen dies: https://github.com/arturdev/test

enter image description here

+0

ich weiß, aber Überlauf ist ein Teil der Anforderung, seine erwähnt, und es kommt auf die nächste Zelle, BCOZ-Clip ist falsch –

+0

Als Sie können Folgendes tun. Blenden Sie das tableView-Trennzeichen aus, indem Sie "Separator" im Storyboard für "tableView" auf "None" setzen. Dann erhöhen Sie die Höhe der Zelle, damit die Schaltflächen vollständig angezeigt werden können, und fügen Sie dann Ihr benutzerdefiniertes Trennzeichen an der gleichen Y-Position wie jetzt ein. Als benutzerdefiniertes Trennzeichen können Sie eine UIView mit 1pt Höhe hinzufügen und Hintergrundfarbe für lightGrayColor festlegen. – arturdev

+0

tatsächliche Anforderung ist eine Containeransicht dort drüben, die eine weitere Tabellenansicht hat, im Grunde ein Spinner ein bisschen, aber ich vereinfachte Problemstellung und machte es als Schaltfläche, so dass dieser Ansatz nicht machbar ist –

1

Subklasse 0.123.und überschreiben hitTest:withEvent: und herauszufinden, ob point innerhalb des Rahmens einer der Tasten ist. Geben Sie die Schaltfläche zurück, wenn sich der Punkt innerhalb des Rahmens befindet, oder geben Sie andernfalls [super hitTest:point withEvent:event] ein.

Sie können CGRectContainsPoint und [UIView convertRect/Point:to/fromView:] verwenden, um die Berechnung zu vereinfachen.

hitTest:withEvent: ist eine Möglichkeit für das System der äußerste Ansicht zu fragen, wer das Ereignis an einem bestimmten Ort erhalten.

+0

lassen Sie mich es versuchen –

+0

Ich bin immer noch nicht in der Lage, hitTest zu bekommen, möglich für Sie zu einem Commit in Git? Ich weiß, es ist viel zu fragen, oder kann ich 'touchesBegan verwenden: withEvent:' –

+0

@aishwatsingh Ich habe die pr geöffnet https://github.com/aiswat/test/pull/1 überprüfen Sie es – sikhapol

1

Make UITableView seperator auf Keine. Zeichnen Sie 1 oder 2 Pixel Höhe Etikett mit schwarzer Hintergrundfarbe in der Zelle.

Stellen Sie in cellForRowAtIndex den Zellenauswahlstil none fest.

cell.selectionStyle = UITableViewCellSelectionStyle.None 

Verwalten Sie die richtige automatische Layout- oder Autoresierungsmaske.

Nur mit Ihrem Code versucht.

Herunterladen von link

Bild

enter image description here

Verwandte Themen