Abteilungsnummer und Zeilennummer auf benutzerdefinierte Zellen Schaltfläche klicken?

8

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

    
Rahul Vyas 30.05.2009, 15:41
quelle

5 Antworten

26

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:

%Vor%

Dann würde Ihr Event-Handler so aussehen:

%Vor%     
Jim Dovey 31.05.2009, 13:07
quelle
8

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.

    
dmercredi 30.05.2009 17:35
quelle
6

Die folgende Methode wird aufgerufen, wenn Sie in Ihrer Tabellenansicht eine Zelle auswählen:

%Vor%

, um auf die Abschnittsnummer zuzugreifen: int section = indexPath.section;

für den Zugriff auf die Zeilennummer (im richtigen Abschnitt): int row = indexPath.row;

    
zpesk 30.05.2009 15:47
quelle
1

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.

    
Corey Floyd 30.05.2009 20:19
quelle

Tags und Links