IOS 7 - Wie man den indexPath von einem Button in UITableViewCell bekommt
Ich habe programmgesteuert erstellt einen UITableView und Hinzugefügt UISwitch es die Zelle von Zubehör anzeigen.
Dies ist mein code für UISwitch in Zelle Accessoire Blick in cellForRowAtIndexPath
Methode.
UISwitch *accessorySwitch = [[UISwitch alloc]initWithFrame:CGRectZero];
[accessorySwitch setOn:NO animated:YES];
[accessorySwitch addTarget:self action:@selector(changeSwitch:) forControlEvents:UIControlEventValueChanged];
cell.accessoryView = accessorySwitch;
Dies ist die Methode, die aufgerufen wird, nachdem auf die Schaltfläche geklickt wird.
- (void)changeSwitch:(UISwitch *)sender{
UITableViewCell *cell = (UITableViewCell *)[sender superview];
NSIndexPath *indexPath = [self.filterTableView indexPathForCell:cell];
NSLog(@"%ld",(long)indexPath);
……………. My other code…….
}
Ich bin in der Lage, drucken Sie die index-Pfad-Wert in iOS 6
Aber in iOS 7 es gibt null,
Bin ich etwas fehlt in iOS 7 oder gibt es einige andere Ansatz, um die indexPath in iOS 7
Dank,
Arun.
InformationsquelleAutor der Frage Arun | 2013-09-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
NSLog(@"%ld",(long)indexPath);
ist falsch dies wird drucken Sie die pointer-Adresse des indexPathversuchen Sie es mit folgenden codes
InformationsquelleAutor der Antwort lanbo
Wenn Sie die Schaltfläche in der Zelle. Erhalten Sie die Zelle durch Aufruf von superview. Und dann bekommen Indexpath auf diesem Weg.
InformationsquelleAutor der Antwort Adnan Aftab
Swift Lösung:
Eine UITableView-Erweiterung wie diese können hilfreich sein für diese.
Nutzung wird einfach überall.
InformationsquelleAutor der Antwort Ishan Handa
Können Sie tags vergeben zu jedem Schalter in der cellForRowAtIndexPath Methode wie
InformationsquelleAutor der Antwort Janak Nirmal
SWIFT 4 :
InformationsquelleAutor der Antwort Logic
Sind Sie wahrscheinlich, sich zu verbrennen, so dass die Annahme, dass der switch
superview
wird dietableViewCell
. Vielleicht in iOS 7 änderten Sie die Hierarchie um eine Art visuellen Effekt; vielleicht gibt es eine neue Ansicht eingefügt.Könnten Sie eventuell Unterklasse
UISwitch
und geben ihm einenindexPath
Eigenschaft. Dann in IhrecellForRowAtIndexPath
weisen Sie es so haben Sie eine Referenz.InformationsquelleAutor der Antwort D.C.
Ich denke, das ist gefährlich, verlassen Sie sich auf die position der Schaltfläche zu wissen, was man geklickt wurden.
Ich prefere erstellen Sie ein Wörterbuch, die als Schlüssel den Knopf/Schalter selbst, und als Wert die indexpath :
dann, wenn der Schalter/Taster ausgelöst wird, bekomme ich die indexpath einfach aus meinem Wörterbuch :
InformationsquelleAutor der Antwort Omaty