2017-10-18 214 views
1

我有一個UICollectionView與4個自定義單元格。電池0和3在設計上是相同的。但是,代碼案例幾乎與函數和對象相同。兩者有3個完全相同的UIButtons,可以說一組用於玩家1,另一組用於玩家2.我不想複製代碼並將它從單元格0中的按鈕複製出來。什麼是最好的(我知道這是主觀的)使所有按鈕使用相同的代碼庫?我以爲在按鈕上放置一個標籤,所以我知道按鈕正在調用。兩個UIButtons共享代碼

或者這是一個泛型的工作?

@IBAction func undo(_ sender: UIButton) { 

    undo(sender: sender) 

} 

func undo(sender: sender) { 

    if sender.tag = 0 { 

      // Do something that is different for button 0 

    } else if sender.tag = 1 { 

     // Do something that is different for button 1 

    } 

    //Common to all buttons... 

} 
+0

如果你的代碼只是使用不同的數據,你可以構建一個接收* data *的函數。然後,您的按鈕處理程序只需使用要使用的數據調用該函數。 – theGleep

+1

絕對不是泛型。使用標籤是一種不好的做法。從你的例子不是很清楚什麼是常見的。 – Sulthan

回答

1

這是一個有點很難完全明白你正在嘗試做的,但它聽起來像你可能想是注射封閉到您的單元格(或理想的某種視圖模型中的細胞),其中有您想要執行的行爲已經定義,並在單元被點擊時調用它。