Мне удалось выполнить стандартную кнопку действия (т. Е. Удалить) через uitableview
с использованием метода delegate
trailingSwipeActionsConfigurationForRowAt
.
Моя проблема в основном пытается заменить кнопку действиянапример, с пользовательской кнопкой, которая имеет отступ между ячейкой и кнопкой действия, имеет закругленные края и вставлена в ячейку.
Не удалось найти никаких отведений, и любые мысли будутоценил ..
Ниже желаемая цель:
func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
let delete = UIContextualAction(style: .normal, title: "") { (action, view, completion) in
print("Delete Pressed")
completion(true)
}
delete.backgroundColor = UIColor.clear
delete.image = #imageLiteral(resourceName: "trash")
let config = UISwipeActionsConfiguration(actions: [delete])
config.performsFirstActionWithFullSwipe = false
return config
}
func tableView(_ tableView: UITableView, willBeginEditingRowAt indexPath: IndexPath) {
tableView.subviews.forEach { subview in
if (String(describing: type(of: subview)) == "UISwipeActionPullView") {
if (String(describing: type(of: subview.subviews[0])) == "UISwipeActionStandardButton") {
if let actionButtonCGRect = actionButtonCGRect {
subview.subviews[0].bounds = actionButtonCGRect
} else {
actionButtonCGRect = subview.subviews[0].frame.insetBy(dx: 0, dy: 10)
subview.subviews[0].bounds = actionButtonCGRect!
}
subview.subviews[0].layer.cornerRadius = 10
subview.subviews[0].clipsToBounds = true
subview.subviews[0].backgroundColor = UIColor.red
}
}
}
}