Ich habe Tabellenansicht mit benutzerdefinierten Zellen. Die Tabelle ist in viele Abschnitte und Zeilen unterteilt. Ich habe eine benutzerdefinierte Schaltfläche in der Zelle. Jetzt möchte ich die Abschnittsnummer und Zeilennummer erhalten, wenn ich auf diesen Knopf klicke. Irgendeine Idee diesbezüglich
Sie müssen eine UIControl-Ereignisbehandlungsmethode auf Ihrem View-Controller implementieren und diese als Handler für alle Schaltflächen festlegen. d. h. in Ihrer -tableView:cellForRowAtIndexPath:
-Funktion würden Sie etwas tun wie:
Dann würde Ihr Event-Handler so aussehen:
%Vor%Ein paar Gedanken:
Sie können die Superview-Hierarchie der Schaltfläche durchlaufen, bis Sie eine UITableViewCell finden und dann die Zelle - (NSIndexPath *) indexPathForCell: (UITableViewCell *) auf der UITableView aufrufen.
%Vor%Sie können das Tag der Schaltfläche alternativ verwenden, um einen Index zu speichern, der auf die Zeile verweist. Dies gilt nur für eine einzelne Ganzzahl, so dass es am sinnvollsten ist, wenn Sie einen einzelnen Abschnitt haben oder wenn Sie Ihre Zeilen als flache Liste verwalten.
Sie können UITableViewCell alternativ ableiten, um die Schaltfläche zu kapseln. Ihr UITableViewCell könnte auf die Schaltflächenereignisse reagieren und ein Ereignis erneut an seinen eigenen Delegaten senden, der sich selbst übergibt. Der Ereignisdelegat kann dann - (NSIndexPath *) indexPathForCell: (UITableViewCell *) Zelle auf dem UITableView aufrufen, um den Indexpfad zu erhalten.
Der UITableView kann eine CGPoint-Koordinate in einen indexPath konvertieren :
%Vor%Fügen Sie can-Instanzvariable Ihrer UITableViewCell-Unterklasse hinzu, um den Indexpfad der Zelle zu speichern:
%Vor%Wenn Sie die Zelle in erstellen:
%Vor%übergibt den Indexpfad an die neu erstellte / recycelte Zelle.
Wenn Sie nun auf die Schaltfläche drücken, lesen Sie einfach den Indexpfad von der Zelle Ihrer Zelle.
Tags und Links objective-c iphone cocoa-touch