0
したがって、削除および編集ボタンを含むテーブルビューでカスタムスワイプを作成しようとしています。しかし、編集したいセルの行を参照することはできません。この場合のインデックスは[x、y]になります。スワップ時の編集ボタンのインデックスを参照して、xは常に0になり、yは行インデックスになります。Swift 3 UITableViewRowActionで行インデックスを参照する方法
[x、y]の行インデックス、つまりyをどのように参照できますか。ありがとう!
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]
}
私はスワイプしてindexPathを印刷しようとすると[0,0]や[0,1]などの[x、y]のようなsthを表示しています。 1は行です。また、削除ボタンと編集ボタンがあるので、同じ[x、y]を押すと、[x、y]インデックスのxは何を表しますか? –
oh..itはreturn [delete、edit]を参照しています –
インデックスパスのフォーマットは '[section、row]' – vadian