无法以编程方式从按钮插座覆盖UIButton titleLabel属性

时间:2017-09-16 02:25:49

标签: ios swift3 uibutton storyboard

所以我在故事板中使用大小类。我的故事板中的按钮是使用自动布局和它的罚款和所有。

我为我的ViewController创建了一个插座,我正在尝试更改标题标签文本和文本颜色,这些都不起作用。但是,角半径和背景颜色正常。

  @IBOutlet weak var cancelButton_iPhone: UIButton!

  func setupButtons() {
    cancelButton_iPhone.layer.cornerRadius = 8.0
    cancelButton_iPhone.backgroundColor = UIColor(red:1, green:1, blue:1, alpha:0.15)
    cancelButton_iPhone.titleLabel?.textColor = UIColor.white
    cancelButton_iPhone.titleLabel?.text = "testtest"
  }

在ViewWillAppear中调用setupButtons()。我也尝试了ViewDidLoad并没有区别。

在故事板中,cancelButton_iPhone文本设置为“取消”,文本颜色设置为黄色。这就是我的应用程序中反映出来的内容。而不是“testtest”和白色文本。

由于

3 个答案:

答案 0 :(得分:1)

属性返回标题视图,如果需要,将始终创建它们,并且总是为系统按钮返回nil。而UIButton是UIControl的子类,因此在更新按钮的标题时总是需要指定ControlState!你可以调用func setTitle(_ title: String?, for state: UIControlState)来设置按钮的标题,按钮的titleColor也是如此。

答案 1 :(得分:0)

对于按钮标题,您应该使用这些方法。 func setTitleColor(_ color:UIColor?,for state:UIControlState) func setTitle(_ title:String?,for state:UIControlState)

答案 2 :(得分:0)

尝试添加以下代码:

@IBOutlet weak var cancelButton_iPhone: UIButton!

func setupButtons() {
    cancelButton_iPhone.layer.cornerRadius = 8.0
    cancelButton_iPhone.backgroundColor = UIColor(red:1, green:1, blue:1, alpha:0.15)
    cancelButton_iPhone.setTitle("testtest", for: .normal)
    cancelButton_iPhone.setTitleColor(UIColor.white, for: .normal)
}

希望它有所帮助。