按下时 UIButton 不会改变文本颜色

VsM*_*MaX 4 uibutton ios swift

以编程方式创建的 UIButton 在按下时不会改变颜色,就像使用 Interface Builder 创建的所有其他按钮一样。

我的按钮创建如下:

        let cableDetailsButton = UIButton(type: UIButtonType.System)
        cableDetailsButton.frame = CGRectMake(8, 8, 42, 21)
        cableDetailsButton.setTitle("Title", forState: UIControlState.Normal)
        cableDetailsButton.setTitleColor(self.view.tintColor, forState: .Normal)
        cableDetailsButton.setTitleColor(UIColor.blackColor(), forState: UIControlState.Highlighted)
        cableDetailsButton.addTarget(self, action: #selector(FuseDetailsViewController.cableButtonPressed), forControlEvents: .TouchUpInside)
Run Code Online (Sandbox Code Playgroud)

我想补充一点 tintColor 是默认的 iOS 颜色(蓝色)

我的目标是以编程方式创建与从 Interaface Builder 列表中拖放的按钮相同(默认!)的按钮。我希望我的按钮在按下时更改颜色/alpha。

我正在使用 Swift 2.3

不幸的是,这样简单的任务让我不知所措,以至于我不得不寻求帮助。预先感谢您的帮助。

更新:按钮是 UISCrollView 的一部分

Ann*_*pta 5

代替

let cableDetailsButton = UIButton(type: UIButtonType.system)
Run Code Online (Sandbox Code Playgroud)

你需要改变UIButtonType作为.custom

let cableDetailsButton = UIButton(type: UIButtonType.custom)
Run Code Online (Sandbox Code Playgroud)

如果您使用的是 Swift3,则语法也不正确。在下面找到更正的语法

let cableDetailsButton = UIButton(type: UIButtonType.custom)
cableDetailsButton.frame = CGRect(x: 8, y: 8, width: 42, height: 21)
cableDetailsButton.setTitle("Dane o przewodach", for: UIControlState.normal)
cableDetailsButton.setTitleColor(self.view.tintColor, for: .normal)
cableDetailsButton.setTitleColor(UIColor.black, for: UIControlState.highlighted)
cableDetailsButton.addTarget(self, action: #selector(self.cableButtonPressed), for: .touchUpInside)
Run Code Online (Sandbox Code Playgroud)