以默认方式以编程方式创建UIButton

时间:2019-05-22 19:49:18

标签: swift

有没有一种方法可以使用swift创建按钮,并使它具有您在Interface Builder中将按钮拖出时所看到的默认行为?

使用界面构建器创建按钮会为文本/标题提供默认的“这是一个交互式元素”蓝色,并且在触摸/轻击按钮时会赋予颜色变亮的效果。

仅使用let myButton = UIButton()快速创建按钮,会将文本和背景颜色默认为白色(???),并且没有视觉活动指示。我发现您可以将每个按钮的标题颜色设置为self.view.tintColor,但希望可以有更好的方法将其“默认”。

2 个答案:

答案 0 :(得分:1)

在Swift中以与使用界面生成器相同的默认行为创建按钮的正确方法是使用Larme评论的UIButton的init(type:)方法。

示例:

let btn = UIButton(type: .system)

这将创建一个带有标准蓝色文本和视觉活动指示的按钮。

我找到了有关此以及您可以使用here的其他UIButton类型的信息。

答案 1 :(得分:0)

您可以继承UIButton并重新创建所有的触摸/标题颜色等。

您可以创建扩展名

通过此链接找到了扩展名。

how to set UIButton type in UIButton Subclass

extension UIButton {
    static func createStandardButton() -> UIButton {
        let button = UIButton(type: UIButtonType.system)
        button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 16)
        button.setTitleColor(UIColor.black, for: .normal)
        button.setTitleColor(UIColor.gray, for: .highlighted)
        return button
    }
}

let button = UIButton.createStandardButton()