在我的应用中,我严重依赖于不同的视图类型,它们将拥有不同的值。例如,对于一个按钮,我需要它有4个额外的变量,我实现它如下:
import UIKit
class ActionButton: UIButton {
var row = 0
var action = 0
var appDataId = ""
var companyId = ""
}
我使用ActionButton而不是UIButton。
但是我需要很多这些用于不同类型的视图,比如标签按钮等,这可能会使项目复杂化。
我的问题是,这是一个好习惯吗?有没有其他方法可以达到同样的效果?
谢谢!
答案 0 :(得分:7)
方法0:您已经向我们展示的工作正常:D
这就是:继承现有的类并使用你的vars进行自定义。您只需复制粘贴该按钮或将新创建的按钮类设置为public static String sampleFolder = System.getProperty("user.dir") + "//Reports//output//TestCasesHtmlReports//";
。
但我认为还有更多有趣的解决方案。
方法1:创建UIButton扩展并使用关联对象代替存储的变量。
还有另一种方式:
Extensions May not contain Stored properties
方法1.5(推荐的解决方案):
扩展ActionButton
。 UILabel和UIButton以及许多其他UI元素都继承自它。从UIView
继承的所有类都可以访问您在UIView
扩展名中添加的内容。
奖励方法(如果您希望或需要更进一步):创建自定义UIButton类并使用IBInspectables!
然后,您就可以直接从“界面”构建器修改变量,这非常便于测试!
示例:
UIView