我在IOS11中使用trailingSwipeActionsConfigurationForRowAt但是当刷卡多次然后应用程序破解.
func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
let delete = UIContextualAction(style: .normal, title: "Delete") { action, view, completionHandler in
print("Deleting!")
completionHandler(false)
}
delete.backgroundColor = UIColor.red
let config = UISwipeActionsConfiguration(actions: [delete])
config.performsFirstActionWithFullSwipe = false
return config
}
Run Code Online (Sandbox Code Playgroud)
还有一些错误
*** Assertion failure in -[UISwipeActionController swipeHandlerDidBeginSwipe:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3694.4.18/SwipeActions/UISwipeActionController.m:268
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'No occurrence for index path (null)'
Run Code Online (Sandbox Code Playgroud)
TL;DR - 查看您在两次滑动之间是否正在对数据执行某些操作(例如重新加载)。
当我滑动删除一个单元格(使其处于编辑模式 - 删除操作可见)然后尝试滑动另一个单元格导致我的应用程序崩溃时,我遇到了类似的问题。就我而言,这是因为在两次滑动之间重新加载表数据。
滑动删除手势调用willBeginEditingRowAtIndexPath
和对象didEndEditingRowAtIndexPath
上的方法UITableViewDelegate
。在后一种情况下,我打电话给tableView.reloadData()
. 当我滑动删除其他单元格时,我得到了didEndEditingRowAtIndexPath
为第一个单元格调用的方法(也重新加载数据),就在该系统调用willBeginEditingRowAtIndexPath
另一个单元格之后,数据不同步,UIKit 崩溃了。
当我删除在方法中重新加载数据的代码时,didEndEditingRowAtIndexPath
我的应用程序将不再崩溃:)
归档时间: |
|
查看次数: |
1868 次 |
最近记录: |