UITableViewRow中的自定义删除按钮不适用于iOS11

时间:2018-03-07 10:30:35

标签: uitableview swift4 ios11 xcode9 uicontextualaction

对于iOS11,我无法使用trailingSwipeActionsConfigurationForRowAt委托方法在表格行中使用自定义删除按钮。 我觉得我错过了一些东西,但我不知道的是什么。以后的方法没有被称为滑行。任何帮助都将不胜感激。

@available(iOS 11.0, *)
func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {

    let deleteAction = UIContextualAction.init(style: UIContextualAction.Style.destructive, title: nil, handler: { (action, view, completion) in
        //TODO: Delete
        completion(true)
    })
    deleteAction.backgroundColor = .blue//UIColor(red: 252/255, green: 56/255, blue: 88/255, alpha: 1.0)
    deleteAction.image = UIGraphicsImageRenderer(size:CGSize(width:30,height:30)).image { _ in
        UIImage(named: "Icon-Trash")!.draw(in : CGRect(x:0,y:0,width:30,height:30))
    }
    let config = UISwipeActionsConfiguration(actions: [deleteAction])
    config.performsFirstActionWithFullSwipe = false
    return config
}

任何人都可以发布iOS11的工作代码,因为我已经尝试过了。

1 个答案:

答案 0 :(得分:0)

我通过代码而不是storyboard设置tableview的datasource和delegate来解决它。另外我更新了swift4中的所有委托方法。