Wie bekomme ich indexPath.row in cell.swift

7

Ich habe 2 Dateien.

  • myTableViewController.swift
  • myTableCell.swift

Kann ich indexPath.row in der myTabelCell.swift Funktion erhalten?

Hier ist myTableCell.swift

%Vor%

Hier ist myTableViewController.swift

%Vor%

Wie Sie sehen können ... versuche ich indexPath.row in myTableCell, liktBtnTapped Funktion zu bekommen.

Können Sie mir mitteilen, wie ich auf IndexPath.row zugreifen oder es erhalten kann?

    
Shawn Baek 05.11.2016, 11:12
quelle

6 Antworten

17

Ich habe eine Erweiterung UIResponder mit einer rekursiven Methode erstellt, die Sie in UIView (die von UIResponder erbt) verwenden können, um eine übergeordnete Ansicht eines bestimmten Typs zu finden.

%Vor%

Damit können wir UITableViewCell um einige nützliche schreibgeschützte berechnete Eigenschaften für die Tabellenansicht und den Indexpfad der Zelle erweitern.

%Vor%

So können Sie es in Ihrem Beispiel verwenden:

%Vor%     
Callam 05.11.2016, 11:36
quelle
3

Einfach .. Sie können dies innerhalb der Tastenaktion tun:

%Vor%

Und danach in cellForRowAtIndexPath :

%Vor%     
Tarvo Mäesepp 05.11.2016 11:20
quelle
1

Erstellen Sie eine Eigenschaft indexPath in der Zellklasse und setzen Sie sie in cellForRowAtIndexPath , wenn die Zelle wiederverwendet wird.

Aber es gibt einen Vorbehalt: Einige Tabellensichtmethoden zum Umordnen der Zellen rufen nicht cellForRowAtIndexPath auf. Sie müssen diesen Fall berücksichtigen.

Aber wenn Sie immer nur reloadData() verwenden, ist es sicher und ziemlich einfach.

Eine andere Möglichkeit besteht darin, den Code bezüglich kontrollierender Dinge in die Klasse controller zu setzen und ihn über Callback-Closures auszuführen, die den Indexpfad erfassen.

    
vadian 05.11.2016 11:29
quelle
1

Hier ist ein anderer Weg, es zu tun

%Vor%     
quelle
1

Versuche das in deiner Zelle. (Swift 4)

%Vor%     
Rakesha Shastri 24.10.2017 09:43
quelle
0

Meine Lösung war die Unterklasse von UITableViewCell und kann daher die IndexPath-Eigenschaft hinzufügen. Zuweisen einer benutzerdefinierten Klasse für die Tabellenansichtszelle im Storyboard. Weisen Sie den IndexPath-Wert zu, wenn rowAtIndexPath aufgerufen wird.

%Vor%

%Vor%     
samcpp 19.10.2017 19:46
quelle

Tags und Links