使用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中的按钮标题不起作用的主要内容,如果未能解决你的问题,请参考以下文章
使用swift在scrollview内的stackview中更改uibutton中的标题