jal*_*one 1 uitableview swipe ios swift
我不确定我是否理解正确,这里的文档有点混乱,但是在 UITableView 委托的主体中给出了以下代码:
func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
return true
}
func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
let action = UITableViewRowAction(style: UITableViewRowAction.Style.normal,
title: "Do Something!") { (_, indexPath) in
self.doSomething()
}
return [action]
}
Run Code Online (Sandbox Code Playgroud)
在点击“做某事!”旁边的向左滑动操作完成后,在模拟器中doSomething()执行对方法的调用。按钮。我不希望调用执行两次。我的配置有问题还是我不明白的目的?UITableViewRowAction
TLDR:我希望只有当出现的按钮被点击时才会触发滑动动作回调。
谢谢你。
为了防止这种行为,你需要一个新的 iOS 的实现。
func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
let myAction = UIContextualAction(style: .someStyle, title: "Some tilte") { (action, sourceView, completionHandler) in
print("action has been triggered")
completionHandler(true)
}
let preventSwipeFullAction = UISwipeActionsConfiguration(actions: [myAction ])
preventSwipeFullAction .performsFirstActionWithFullSwipe = false // set false to disable full swipe action
return preventSwipeFullAction
}
Run Code Online (Sandbox Code Playgroud)
记住tableView.isEditing需要是false允许trailingSwipeActionsConfigurationForRowAt被调用的。
completionHandler(true)// 传递 true 启用处理程序调用操作
| 归档时间: |
|
| 查看次数: |
1297 次 |
| 最近记录: |