So versuche ich eine benutzerdefinierte Swipe in der Tabellenansicht einschließlich einer Schaltfläche zum Löschen und Bearbeiten zu erstellen. Ich kann jedoch nicht auf die Zeile der ausgewählten Zelle verweisen, die ich bearbeiten möchte. Der Index lautet in diesem Fall [x, y], wobei x immer 0 ist und sich auf den Index der Bearbeitungsschaltfläche beim Kopieren bezieht, während y der Zeilenindex ist.Swift 3 So verweisen Sie auf den Zeilenindex in UITableViewRowAction
Wie kann ich auf den Zeilenindex verweisen, mit anderen Worten, y in [x, y]. Vielen Dank!
override func tableView(_ tableView: UITableView, editActionsForRowAt: IndexPath) -> [UITableViewRowAction]? {
let delete = UITableViewRowAction(style: .normal, title: "Delete") { action, index in
self.leaveLeaveType.remove(at: index.row)
self.leaveStartsTime.remove(at: index.row)
self.leaveEndsTime.remove(at: index.row)
self.leaveHost.remove(at: index.row)
self.leaveDest.remove(at: index.row)
tableView.deleteRows(at: [index], with: .fade)
}
let edit = UITableViewRowAction(style: .normal, title: "Edit") { action, index in
//self.performSegue(withIdentifier: "editLeaveRequest", sender: self)
let editCell = self.tableView.cellForRow(at: index)! as! LeaveRequestTableViewCell
self.editLeaveType = editCell.leaveLeaveType.text!
self.editHost = editCell.leaveHost.text!
self.editDest = editCell.leaveDest.text!
let cellDateTime = editCell.leaveDateTime.text!
let startsTimeStartIndex = cellDateTime.index(cellDateTime.startIndex, offsetBy: 0)
let startsTimeEndIndex = cellDateTime.index(cellDateTime.endIndex, offsetBy: -22)
let startsTimeRange = startsTimeStartIndex..<startsTimeEndIndex
self.editStartsTime = cellDateTime[startsTimeRange]
let endsTimeStartIndex = cellDateTime.index(cellDateTime.startIndex, offsetBy: 22)
let endsTimeEndIndex = cellDateTime.index(cellDateTime.endIndex, offsetBy: 0)
let endsTimeRange = endsTimeStartIndex..<endsTimeEndIndex
self.editEndsTime = cellDateTime[endsTimeRange]
}
delete.backgroundColor = .red
edit.backgroundColor = .lightGray
return [delete, edit]
}
Danke für die Hilfe ... aber wenn ich wische und versuche, den IndexPath zu drucken, zeigt es immer noch etw wie [x, y], wie [0,0] oder [0,1], die 0, 1 sind die Reihen. Da ich eine Lösch- und eine Bearbeitungsschaltfläche habe, habe ich festgestellt, dass beide zu demselben [x, y] führen, wenn sie gedrückt werden. Wofür steht dann der Index x in [x, y]? –
oh..it bezieht sich auf die Rückkehr [löschen, bearbeiten] –
Das Format eines Index Pfades ist '[Abschnitt, Zeile]' – vadian