swift使用runtime實現(xiàn)tableView沒有數(shù)據(jù)時的站位背景圖

項目開發(fā)中常需要站位圖,如tableview,但是項目開發(fā)到中途,可能有幾百個tableview在你到項目里。
這里我采用到辦法是寫一個extension,實現(xiàn)一個類方法。在appdelegate中調(diào)用這個類方法實現(xiàn)。代碼如下:

extension UITableView {
    
    /// 類方法實現(xiàn)runtime的方法交換,處理tableview沒有數(shù)據(jù)時的背景圖
    public class func initializeMethod() {
        
        let originalSelector = #selector(UITableView.reloadData)
        let swizzledSelector = #selector(jc_reloadData)
        
        //  runtime獲取函數(shù)方法
        let originalMethod = class_getInstanceMethod(self, originalSelector)
        let swizzledMethod = class_getInstanceMethod(self, swizzledSelector)
        method_exchangeImplementations(originalMethod!, swizzledMethod!)
        
    }
    
    @objc func jc_reloadData(){
        self.jc_reloadData()
        
        let number = self.numberOfSections
        var havingData = false
        
        for i in 0..<number {
            if self.numberOfRows(inSection: i) > 0{
                havingData = true
                break
            }
        }
        
        if havingData {
            self.backgroundView = UIImageView()
        }else{
            self.backgroundView = UIImageView.init(image: UIImage.init(named: "drawing_no_duty"))
            self.backgroundView?.contentMode = .center
        }
    }
}

在appdelegate中調(diào)用

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

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

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,665評論 1 32
  • 春風(fēng)常使人間綠,再把千嬌百媚生。 年少拋人容易去,何如一見滿條紅。 注:春來時,萬物先綠,紫荊先花后葉,把最美的一...
    梅心梅飛閱讀 462評論 1 15
  • 窩在家里看張愛玲的小說,倦了便倚靠在沙發(fā)上睡著了。一覺醒來,打開手機,鹿晗關(guān)曉彤的消息鋪天蓋地席卷而來。今日頭條、...
    五月兒要努力閱讀 763評論 1 2
  • 2018年1月18日,周杰倫在39歲生日這天發(fā)布新歌《等你下課》。半小時后,評論接近4萬,26萬人在線聽歌。 也就...
    猛虎哥閱讀 388評論 0 1
  • “你有自我意識嗎?” “你何時有的?” 越早越好。
    奈黛奈藹閱讀 313評論 0 0

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