使用swift 3更改iOS中的按钮标题不起作用

Posted

技术标签:

【中文标题】使用swift 3更改iOS中的按钮标题不起作用【英文标题】:Changing of button title in iOS with swift 3 not working 【发布时间】:2017-05-03 03:36:30 【问题描述】:

我正在尝试使用setTitle 更改按钮的标题

我没有收到任何错误,我的 IBAction 正在工作,但没有任何反应。

我在这里错过了什么?

import UIKit

class ViewController: UIViewController 

    @IBOutlet weak var hourTimerButton: UIButton!

    @IBAction func hourTimerButton(_ sender: Any) 
        hourTimerButton.setTitle("test", for: [])
        print("button")
       

    override func viewDidLoad() 
        super.viewDidLoad()

        hourTimerButton.setTitle("test", for: .normal)
        hourTimerButton.setTitle("test", for: [])    
    

【问题讨论】:

尝试在更改标题时设置按钮的状态。 【参考方案1】:

尝试像这样将按钮设置为正常状态。

hourTimerButton.setTitle("test", for: .normal)

【讨论】:

【参考方案2】:

检查您的按钮(hourTimerButton)引用是否正确连接,我现在已经调试了您的代码,一切正常。更好的是,您可以将sender 类型更改为UIButton 而不是Any

import UIKit

class ViewController: UIViewController 

  @IBOutlet weak var hourTimerButton: UIButton!

  @IBAction func hourTimerButton(_ sender: UIBUtton) 
      sender.setTitle("test", for: .normal)
      print("button")
     

  override func viewDidLoad() 
      super.viewDidLoad()
      hourTimerButton.setTitle("test", for: .normal)   
  

谢谢。

【讨论】:

【参考方案3】:

试试这个方法:

Title1 和 Title2 是您的 UIButton 的两个不同标题:

@IBAction func hourTimerButton(_ sender: Any)改为

@IBAction func hourTimerButton(_ sender: AnyObject)

然后这样做:

if (sender.currentTitle == "Title1")
                button.setTitle("Title2", for: .normal)
            

希望它有效!

【讨论】:

以上是关于使用swift 3更改iOS中的按钮标题不起作用的主要内容,如果未能解决你的问题,请参考以下文章

更改按钮文本不起作用 iOS

Swift iPad - 按钮不起作用

StackView 中的按钮不起作用 - Swift

使用swift在scrollview内的stackview中更改uibutton中的标题

用于在 Swift 中删除 UITableView 中的行的编辑按钮不起作用

Unwind segue 在 Swift 3 和 iOS 10 中不起作用