【问题标题】:tableView(_:editActionsForRowAt:) is not called on iOS 9.3在 iOS 9.3 上不调用 tableView(_:editActionsForRowAt:)
【发布时间】:2018-08-12 02:57:51
【问题描述】:

tableView(_:,editActionsForRowAt:) 方法适用于运行 iOS 10 或更高版本的设备,但不会在运行 iOS 9.3 的设备上调用

我正在使用

func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]?
{
    "Code"
    return [ "various actions"]
}

在 iOS 10 或更高版本上运行时,编辑操作在我的所有课程中都可以正常工作,但在一个课程中,它在运行 9.3 的设备上根本不起作用。在代码中使用断点,似乎这个函数根本没有执行。

【问题讨论】:

  • 阅读效果更好
  • 基于Apple 文档,它适用于iOS 8+,所以你的问题一定出在其他地方。
  • 同意,但是在哪里 - 尝试了各种各样的东西 - 可能是线程问题吗?

标签: ios swift uitableview cocoa-touch


【解决方案1】:

这些都不适合我,除了我尝试了不同的选项。我希望它会有所帮助。您必须为 iOS 9 添加编辑样式,因为它没有 - 您的 Storyboard 上没有可显示的内容。

func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCell.EditingStyle {
    if #available(iOS 10.0, *) {
        return .none;
    } else {
        return .delete;
    }
}

【讨论】:

    【解决方案2】:

    如果canEditRowAt 没有被调用:

    override func setEditing(_ editing: Bool, animated: Bool) {
        super.setEditing(editing, animated: animated)
        tableView.setEditing(editing, animated: animated)
    }
    

    【讨论】:

      【解决方案3】:

      在对我的 Git 存储库进行了很多回溯之后,我发现:

      func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCellEditingStyle {
      return .none
      }
      

      导致 IOS 9.3 不允许将行向左滑动,但允许 moveRowAt 函数工作。 删除代码允许滑动和移动选项都可以工作,但是我现在在左侧有所有 IOS 的删除按钮,这不是我想要的

      Move row selected

      目前,我能看到的唯一解决方案是设置两个类,一个用于 IOS 9.3,另一个用于 10 +。这意味着 IOS 9.3 设备将显示删除按钮。真的希望有更好的解决方案。

      【讨论】:

      • 我也有同样的问题 - 似乎editingStyle控制的参数太多
      【解决方案4】:

      如果您的类中根本没有调用该函数,请确保您已正确设置委托。

      通常这将在viewDidLoad 中完成。通过设置tableView.delegate = self。还要确保你有tableView.dataSource = self。如果它在您的其他视图控制器中工作,我想那里有一个示例。

      如果您使用故事板,您还可以在其中设置委托和数据源。我敢肯定这只是一个忘记做的案例!

      您还需要确保您的课程同时扩展了UITableViewDelegateUITableDataSource

      【讨论】:

      • 所有这一切都已完成——唯一的问题是 9.3 处理 editorStyle 函数的方式不同
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-21
      • 1970-01-01
      • 1970-01-01
      • 2016-08-01
      • 1970-01-01
      相关资源
      最近更新 更多