让多个 UIButton 共享相同外观的最佳方法

Posted

技术标签:

【中文标题】让多个 UIButton 共享相同外观的最佳方法【英文标题】:Best way to let multiple UIButtons share the same appearance 【发布时间】:2017-05-06 16:13:32 【问题描述】:

让多个按钮共享相同外观的最佳做法是什么?

现在我正在像这样循环创建这些按钮:

for i in 0..<10
    let button = UIButton()
    button.setTitle(String(i), for: .normal)
    button.backgroundColor = #colorLiteral(red: 0.3137254902, green: 0.2745098039, blue: 0.2745098039, alpha: 0.5977632705)
    numberButtons.append(button)
    button.layer.borderColor = #colorLiteral(red: 0.04296875, green: 0.04296875, blue: 0.04296875, alpha: 0.5).cgColor
    button.layer.borderWidth = 1.0
    button.addTarget(self, action:  #selector(buttonAction), for: .touchUpInside)

Swift 做这些事情的方法是什么?子类 UIButton?或者添加一些初始化方法作为扩展?

【问题讨论】:

你有没有研究过 UIAppearance 的功能developer.apple.com/reference/uikit/uiappearance 【参考方案1】:

1- 创建UIButton 的子类。

2- 将所有自定义项放入其构造函数中。

3- 将它用于您的按钮(在故事板或代码中)。

answer 中的讨论将帮助您继承 UIButton 并以您想要的方式对其进行自定义。

这个answer 提供了关于何时使用扩展以及何时使用继承的一般经验法则。

【讨论】:

以上是关于让多个 UIButton 共享相同外观的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

Django在多个项目之间共享相同用户模型和数据库的最佳方式

在graphql中,组合多个源中的字段共享一个共同值的多个源的最佳方法是啥?

受 UIButton 外观设置影响的 UIMenuController 中的文本颜色

如何删除禁用的 UIButton 的灰色外观

UIButton 外观 setBackgroundColor 更新后现在影响导航栏

UIButton的使用