我的UIButton
实例在按下时没有突出显示。我非常确定我的代码是正确的。这只发生在我正在使用的特定类中。我正在猜测,因为该功能已被我遵守的协议所覆盖。
我想以UIButton
突出显示默认方式,但我必须手动执行。如何在按下时强制突出显示按钮,它的默认设置(颜色方面)是什么,以便与所有其他按钮一致?
这是我目前的代码:
let backButton = UIButton()
backButton.setTitle("back", for: .normal)
backButton.setTitleColor(UIColor.black, for: .normal)
backButton.adjustsImageWhenHighlighted = true
RevealBar.addSubview(backButton)
backButton.snp.makeConstraints { (make) -> Void in
make.center.equalTo(RevealBar)
make.width.equalTo(RevealBar)
make.height.equalTo(RevealBar)
}
backButton.addTarget(self, action: #selector(self.goBack), for: .touchUpInside)
答案 0 :(得分:18)
使用UIButton(type buttonType: .system)
而不是UIButton()
初始化按钮。
当您使用后者时,它无法正确设置按钮突出显示,因为默认按钮类型为UIButtonType.custom
,其用作没有任何默认样式或突出显示行为的空白平板。
注意,来自Apple's UIButton
documentation:
按钮的类型定义其基本外观和行为。你指定 使用 init(type :)方法或创建时创建时按钮的类型 在您的故事板文件中。 创建按钮后,您无法更改 它的类型。最常用的按钮类型是Custom和 系统类型,但在适当时使用其他类型。
答案 1 :(得分:0)
您的代码正确,但此行let backButton = UIButton()
除外。在这里你需要说按钮类型。您可以使用框架或按钮类型