Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 按下按钮时,UIbutton未高亮显示_Ios_Swift_Uibutton - Fatal编程技术网

Ios 按下按钮时,UIbutton未高亮显示

Ios 按下按钮时,UIbutton未高亮显示,ios,swift,uibutton,Ios,Swift,Uibutton,我的ui按钮实例在按下时未高亮显示。我很确定我的代码是正确的。这只发生在我正在使用的这个特定类中。我猜是因为函数已经被我遵守的协议覆盖了 我想使ui按钮突出显示默认方式,但我必须手动执行。按下按钮时如何强制高亮显示按钮,以及按钮的默认设置(颜色方面)是什么,以便与所有其他按钮一致 这是我目前的代码: let backButton = UIButton() backButton.setTitle("back", for: .normal) backButton.setTit

我的
ui按钮
实例在按下时未高亮显示。我很确定我的代码是正确的。这只发生在我正在使用的这个特定类中。我猜是因为函数已经被我遵守的协议覆盖了

我想使
ui按钮
突出显示默认方式,但我必须手动执行。按下按钮时如何强制高亮显示按钮,以及按钮的默认设置(颜色方面)是什么,以便与所有其他按钮一致

这是我目前的代码:

    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)

使用
UIButton(键入buttonType:.system)
而不是
UIButton()
初始化按钮

如果使用后者,则无法正确设置按钮高亮显示,因为默认按钮类型为
UIButtonType.custom
,它是一块空白的石板,没有任何默认样式或高亮显示行为

注:来自:

按钮的类型定义其基本外观和行为。你指定 使用init(type:)方法或 在你的故事板文件中创建按钮后,无法更改 其类型。最常用的按钮类型是自定义和 系统类型,但在适当时使用其他类型


您的代码是正确的,但此行除外。
let backButton=UIButton()
。这里你需要说按钮类型。您可以使用框架进行初始化按钮类型

尝试使用
UIButton(Type buttonType:UIButtonType.system)进行初始化
谢谢@shim itworked@matt我必须设置标题颜色,因为默认情况下,文本颜色为白色。。但是现在,我将类型更改为.system,它可以在没有它的情况下工作。将其移动到应答器如果使用帧初始值设定项进行初始化,则类型仍然是自定义的,并且按钮将不会具有OP所需的默认高亮显示。正如我在我的中所指出的,在创建按钮后,无法设置类型(鉴于可以随时更改帧)。