方法tableView(_:,editActionsForRowAt:)
适用于运行iOS 10或更高版本但未在运行iOS 9.3的设备上调用的设备
我正在使用
func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]?
{
"Code"
return [ "various actions"]
}
在iOS 10或更高版本上运行时,编辑操作在我的所有类中都能正常工作,但在一个类中,它在运行9.3的设备上根本不起作用。在代码中使用断点似乎根本不执行此函数。
答案 0 :(得分:1)
经过很多人回到我的Git存储库后,我发现:
func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCellEditingStyle {
return .none
}
导致IOS 9.3不允许向左滑动行但允许moveRowAt功能工作。 删除代码允许幻灯片和放大器。移动选项工作,但我现在左边的删除按钮为所有IOS' s不是我想要的
目前,我能看到的唯一解决方案是为IOS 9.3提供两个类别,为10 +提供另一个类别。这意味着IOS 9.3设备将显示删除按钮。真的希望有更好的解决方案。
答案 1 :(得分:0)
如果您班级中根本没有调用该功能,请确保您已将代理设置正确。
通常这会在viewDidLoad
中完成。通过设置tableView.delegate = self
。另外请确保您拥有tableView.dataSource = self
。如果它在你的其他视图控制器中工作,我想在那里有一个例子。
如果您正在使用故事板,您还可以在其中设置委托和dataSource。我相信这只是一个忘记做的事情!
您还需要确保您的课程同时延伸UITableViewDelegate
和UITableDataSource
。
答案 2 :(得分:0)
这些都不适合我,除了我尝试了不同的选择。我希望它会有所帮助。您必须为 iOS 9 添加编辑样式,因为它没有 - 在您的搅拌板上没有任何显示。
func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCell.EditingStyle {
if #available(iOS 10.0, *) {
return .none;
} else {
return .delete;
}
}