swift swipe tableview cell set image with trailingSwipeActionsConfigurationForRowAt AND editActionsForRowAt

时间:2018-02-14 11:46:58

标签: uitableview swipe

滑动表格视图单元格然后显示一些删除和编辑选项。我想设置完整的图像。我已经看过很多演示代码,但后面是文本和背景图片,我需要创建整个图像,这里是ios 10和ios 11的代码,但我无法获得成功

editActionsForRowAt 问题是图片多次重复

func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]?
    {


            let ArchiveAction = UITableViewRowAction(style: UITableViewRowActionStyle.default, title: "          ") { (action , indexPath ) -> Void in



                 tableView.setEditing(false, animated: false)
            }

            let shareAction = UITableViewRowAction(style: UITableViewRowActionStyle.default, title: "          ") { (action , indexPath) -> Void in

                tableView.setEditing(false, animated: false)
            }

            ArchiveAction.backgroundColor = UIColor(patternImage: UIImage(named: "archiver.png")!)
            shareAction.backgroundColor = UIColor(patternImage: UIImage(named: "bloquear.png")!)


            return [ArchiveAction,shareAction]

    }

使用 trailingSwipeActionsConfigurationForRowAt 问题是图片无法正常显示。显示白色图像

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

        let action =  UIContextualAction(style: .normal, title: "sdfsdf", handler: { (action,view,completionHandler ) in
            //do stuff
            completionHandler(true)
        })
       // action.image = UIImage(named: "archiver.png")

        action.backgroundColor = .black
        let confrigation = UISwipeActionsConfiguration(actions: [action])
         confrigation.performsFirstActionWithFullSwipe = true // default is false
        return confrigation
    }

请给我任何解决方案

1 个答案:

答案 0 :(得分:0)

使用 .jpg 时,我也遇到了白色矩形而不是图像的问题。使用 .png 为我工作。

由于您已经使用 .png ,您是否尝试在没有 .png 扩展名的情况下加载图片名称? (“archiver”而不是“archiver.png”

因为init?(named name: String)的参数说明是:

...对于PNG图像,可以省略文件扩展名。对于所有其他文件格式,请始终包含文件扩展名。