Sie sollten stattdessen wirklich diese Methode verwenden:
CGPoint buttonPosition = [sender convertPoint:CGPointZero toView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:buttonPosition];
Schnelle Version:
let buttonPosition = sender.convert(CGPoint(), to:tableView)
let indexPath = tableView.indexPathForRow(at:buttonPosition)
Dadurch erhalten Sie die indexPath
basierend auf der Position der Taste, die gedrückt wurde. Dann würden Sie einfach anrufen, cellForRowAtIndexPath
wenn Sie die Zelle benötigen oder indexPath.row
wenn Sie die Zeilennummer benötigen.
Wenn Sie paranoid sind, können Sie dies überprüfen, if (indexPath) ...
bevor Sie es verwenden, falls das indexPath
für diesen Punkt in der Tabellenansicht nicht gefunden wird.
Alle anderen Antworten werden wahrscheinlich nicht funktionieren, wenn Apple beschließt, die Ansichtsstruktur zu ändern.