有没有一种方法可以使用swift创建按钮,并使它具有您在Interface Builder中将按钮拖出时所看到的默认行为?
使用界面构建器创建按钮会为文本/标题提供默认的“这是一个交互式元素”蓝色,并且在触摸/轻击按钮时会赋予颜色变亮的效果。
仅使用let myButton = UIButton()
快速创建按钮,会将文本和背景颜色默认为白色(???),并且没有视觉活动指示。我发现您可以将每个按钮的标题颜色设置为self.view.tintColor
,但希望可以有更好的方法将其“默认”。
答案 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()