Swift:利用protocol偵測UITableViewCell上的UIButton點擊事件
Published in
3 min readFeb 28, 2019
上一篇文章利用tag來處理UITableViewCell的點擊事件。
這篇則改用protocol。
首先簡單解釋一下protocol
protocol裡包含許多方法及屬性,但僅僅是宣告而已,並不實作。
問:誰來實作呢?
答:遵從protocol的對象(class, struct, enum......)去實作。
利用protocol處理UIButton的點擊事件的概念就是——「cell本身不處理點擊事件,而是交給ViewController處理。」
第一步:寫好protocol
重點:
在didTapMyBtn方法中引進了一個sender參數,目的是為了方便取得MyTableViewCell的屬性
第二步:於cell中宣告delegate變數
第三步:在Action方法中執行protocol的方法
重點:
此時protocol的方法還未實作,要由接下來指定服從protocol的ViewController來實作
第四步:於cellForRow中,產生cell後將delegate指定給ViewController
第五步:實作protocol裡的方法
後記:
利用protocol的方法相比於使用tag可讀性會比較好,而且還能處理同一個cell裡面有好幾個UIButton的狀況,所以比較推薦protocol的做法。
To be continued……