2017-10-18 244 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

这是一个有点很难完全明白你正在尝试做的,但它听起来像你可能想是注射封闭到您的单元格(或理想的某种视图模型中的细胞),其中有您想要执行的行为已经定义,并在单元被点击时调用它。