iOS 左滑按鈕(UITableViewRowAction)顯示圖片

ZY_FlyWay發表於2019-01-09

問題

我們想要左滑刪除按鈕顯示圖片。但是系統預設只能新增文字。


解決辦法

1、 找到UITableViewRowAction裡面的字view,裡面有一個button,我們加的文字就加在上面。

在這裡插入圖片描述

2、將圖片設定為背景顏色

https://stackoverflow.com/questions/29421894/uitableviewrowaction-image-for-title

func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
        let deleteAction = UITableViewRowAction(style: .default, title: title) { (action, indexpath) in
        }
       deleteAction.backgroundColor = UIColor(patternImage: UIImage(named: "IMAGE_NAME"))
        return [deleteAction]
    }

3、iOS 11以上 UITableView已經有了這個代理方法。

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

        let delete = UITableViewRowAction(style: .normal, title: "刪除") { _, index in
        }
        delete.backgroundColor = UIColor(valueRGB: 0xF2463D, alpha: 1.0)
        return [delete]
    }

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

        let deleteAction = UIContextualAction(style: .normal, title:  nil, handler: { (ac:UIContextualAction, view:UIView, success:(Bool) -> Void) in

            debugPrint("Delete tapped")

            success(true)
        })

        deleteAction.image = UIImage(named: "integral_icon_delect")
        deleteAction.backgroundColor = UIColor(valueRGB: 0xF2463D, alpha: 1.0)

        return UISwipeActionsConfiguration(actions: [deleteAction])
    }

我的部落格即將同步至騰訊雲+社群,邀請大家一同入駐:https://cloud.tencent.com/developer/support-plan?invite_code=2gi5aqk2msg08

相關文章