Swift自定義TableView左滑刪除按鈕樣式


Swift自定義TableView左滑刪除按鈕樣式

1. 效果圖

1111.png

2. 實(shí)現(xiàn)過程

在tableView的layoutSubview中遍歷,然后可以自定義一個(gè)按鈕添加上去

override func layoutSubviews() {
    super.layoutSubviews()
    
    if #available(iOS 11.0, *) {
        for subview in self.subviews where subview.isKind(of: NSClassFromString("UISwipeActionPullView")!) {
            subview.backgroundColor = Main_RedColor
            
            for view in subview.subviews where view.isKind(of: NSClassFromString("UISwipeActionStandardButton")!) {
                
                view.backgroundColor = Main_RedColor

                let deleteBtn = setupDeleteBtn(frame: CGRect(x: 0, y: 0, width: autoWidth(width: 160), height: view.height))
                view.addSubview(deleteBtn)
                view.bringSubview(toFront: deleteBtn)
            }
        }
        
    } else {    // IOS 10以及以下
        for subview in subviews where subview.isKind(of: NSClassFromString("UITableViewCellDeleteConfirmationView")!) {
            subview.backgroundColor = Main_RedColor
            
            for view in subview.subviews where view.isKind(of: UIButton.self) {
                view.backgroundColor = Main_RedColor
                
                let deleteBtn = setupDeleteBtn(frame: view.frame)
                view.addSubview(deleteBtn)
                view.bringSubview(toFront: deleteBtn)
            }
        }
    }
}


private func setupDeleteBtn(frame: CGRect) -> UIButton {
    
    let deleteBtn = UIButton(type: .custom)
    deleteBtn.frame = frame
    deleteBtn.backgroundColor = Main_RedColor
    deleteBtn.setTitle("刪除", for: .normal)
    deleteBtn.setTitleColor(UIColor.white, for: .normal)
    deleteBtn.titleLabel?.font = UIFont.systemFont(ofSize: autoFont(size: 32))
    deleteBtn.setImage(UIImage(named: "delete"), for: .normal)
    deleteBtn.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, autoWidth(width: 16))
    return deleteBtn
}

3. 左滑功能

//MARK:- 左滑刪除
func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
    return true
}

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

func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {

    deleteItemByModel(chapter: chapterModels?[indexPath.row])
 
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、通過CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請(qǐng)求組件 FMDB本地?cái)?shù)據(jù)庫組件 SD...
    陽明AI閱讀 16,192評(píng)論 3 119
  • 今天上午把現(xiàn)代圣達(dá)菲,都維修完了,下午不忙,把精保箱收拾收拾,把衛(wèi)生區(qū)精進(jìn)一下,感覺很充實(shí),加油
    88e94d537f85閱讀 232評(píng)論 0 0
  • 不求榮華富貴,但求一生平安。 做為中國千千萬萬普通老百姓中的一員,我們沒有太高要求,只要親人朋友皆平平安安,健健康...
    Z和風(fēng)細(xì)雨M閱讀 2,864評(píng)論 4 2
  • sssusy閱讀 337評(píng)論 0 0

友情鏈接更多精彩內(nèi)容