swift - 如果条件在 swift 中为 false,则禁用在 tableView 中滑动单元格?

标签 swift swipe uitableview

override func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? {

    if condition == true {
    let pause = UITableViewRowAction(style: .Destructive, title: "pause") { action, index in
            print("pause button tapped")
            return [pause]
        }
    } else {

        return .None
    }
}

This code didn't disable to swipe in cell. But when swipe the cell delete option appear. Please anyone can help to slove this problem.

最佳答案

您需要使用canEditRowAt为此并根据您的条件返回 Bool 值。

override func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool {

    if condition == true {
        return true
    }
    return false
}

不需要在 editActionsForRowAtIndexPath 方法中检查条件。

关于swift - 如果条件在 swift 中为 false,则禁用在 tableView 中滑动单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42508060/

相关文章:

swift - UICollectionView 不适合某些 Apple 设备上的 View Controller

javascript - 滑动删除javascript

angularjs - ionic 列表删除,显示选项

javascript - 用于移动浏览器的 iPhone/Android 滑动检测

ios - 在 UITableView 中, "visibleCells"的代表是什么?

ios - 如何同时呈现和解散

swift - 使用 SwiftUI 将 TextField 限制为 x 个字符

ios - 从后台线程添加到 UITableView 中的 UIStackView

ios - 创建 Swift Realm 对象时缺少参数参数

swift - 专门更改填充有数组元素的 TableView 中的一个单元格