我的选择器没有调用 swift 中的函数。在 iOS、swift 中以编程方式删除 uitableViewCell 5
My selector is not calling the function in swift. Deleting tableViewCell programatically in iOS, swift 5
我有一个方法可以删除表视图中的一行:
@objc func didTapDelete(_ sender: UIButton) {
let point = sender.convert(CGPoint.zero, to: tableView)
guard let indexPath = tableView.indexPathForRow(at: point) else {
return
}
prescriptions.remove(at: indexPath.row)
tableView.beginUpdates()
tableView.deleteRows(at: [IndexPath(row: indexPath.row, section: 0)], with: .left)
tableView.endUpdates()
}
在我的 cellForRowAt 中,我正在调用我在 Customcell
中声明的 button.addTarget
cell.deleteButton.addTarget(self, action: #selector(didTapDelete(_:)), for: .touchUpInside)
这是 customCell 中的 Button
let deleteButton: UIButton = {
let variable = UIButton()
variable.setTitle("Delete_Button".localized, for: .normal)
variable.setTitleColor(Colors.red, for: .normal)
variable.titleLabel?.font = UIFont.boldSystemFont(ofSize: Metrics.Spacing.medium)
variable.translatesAutoresizingMaskIntoConstraints = false
return variable
}()
该方法在 viewController 中的视图中,但是当我单击按钮时,即使调试器停止在 selector.addTarget 调用处,也不会调用我的 didTapDelete 方法。
我正在使用 swift 5,viewCode。
picture of the screen
我设法解决了
cell.contentView.isUserInteractionEnabled = false
问题是因为点击它识别单元格点击 select,而不是按钮。
我有一个方法可以删除表视图中的一行:
@objc func didTapDelete(_ sender: UIButton) {
let point = sender.convert(CGPoint.zero, to: tableView)
guard let indexPath = tableView.indexPathForRow(at: point) else {
return
}
prescriptions.remove(at: indexPath.row)
tableView.beginUpdates()
tableView.deleteRows(at: [IndexPath(row: indexPath.row, section: 0)], with: .left)
tableView.endUpdates()
}
在我的 cellForRowAt 中,我正在调用我在 Customcell
中声明的 button.addTarget cell.deleteButton.addTarget(self, action: #selector(didTapDelete(_:)), for: .touchUpInside)
这是 customCell 中的 Button
let deleteButton: UIButton = {
let variable = UIButton()
variable.setTitle("Delete_Button".localized, for: .normal)
variable.setTitleColor(Colors.red, for: .normal)
variable.titleLabel?.font = UIFont.boldSystemFont(ofSize: Metrics.Spacing.medium)
variable.translatesAutoresizingMaskIntoConstraints = false
return variable
}()
该方法在 viewController 中的视图中,但是当我单击按钮时,即使调试器停止在 selector.addTarget 调用处,也不会调用我的 didTapDelete 方法。
我正在使用 swift 5,viewCode。
picture of the screen
我设法解决了
cell.contentView.isUserInteractionEnabled = false
问题是因为点击它识别单元格点击 select,而不是按钮。