在iOS 9.3上未调用tableView(_:editActionsForRowAt :)

时间:2018-03-04 09:11:18

标签: ios swift uitableview cocoa-touch

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

我正在使用

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

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

3 个答案:

答案 0 :(得分:1)

经过很多人回到我的Git存储库后,我发现:

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

导致IOS 9.3不允许向左滑动行但允许moveRowAt功能工作。 删除代码允许幻灯片和放大器。移动选项工作,但我现在左边的删除按钮为所有IOS' s不是我想要的

Move row selected

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

答案 1 :(得分:0)

如果您班级中根本没有调用该功能,请确保您已将代理设置正确。

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

如果您正在使用故事板,您还可以在其中设置委托和dataSource。我相信这只是一个忘记做的事情!

您还需要确保您的课程同时延伸UITableViewDelegateUITableDataSource

答案 2 :(得分:0)

这些都不适合我,除了我尝试了不同的选择。我希望它会有所帮助。您必须为 iOS 9 添加编辑样式,因为它没有 - 在您的搅拌板上没有任何显示。

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