如何在swift5中获取UIButton名称?
Posted
技术标签:
【中文标题】如何在swift5中获取UIButton名称?【英文标题】:How to get UIButton name in swift5? 【发布时间】:2019-09-17 09:28:14 【问题描述】:我目前正在制作pin-code
。我想把所有的功能整合到一个函数中,以便将按钮事件功能整合到一个函数中所以我想得到UIButton
的名称,但我不知道如何。
@IBOutlet weak var oneButton: UIButton!
@IBOutlet weak var twoButton: UIButton!
...
var pinCodeNum : String! = ""
...
@IBAction func OneButton(_ sender: UIButton)
pincodeLogic(sender)
func pincodeLogic(_ sender: UIButton)
// I want get value is (example : 'oneButton' or 'twoButton' or 'threeButton' more )
正如您从我的代码中看到的那样,我得到一个“sender
”作为参数,我想知道使用此参数的oneButton
或twoButton
的名称。我怎么知道?
我的数字按钮由button
和label
组成。
编辑
@IBAction func OneButton(_ sender: UIButton)
pincodeLogic(sender)
func pincodeLogic(_ sender: UIButton)
if let number = sender.currentTitle
print(number)
我看不到打印日志。
【问题讨论】:
使用if let number = sender.currentTitle print(number)
为每个按钮添加不同的功能。
嗨@Fogmeister 你给每个按钮添加不同的功能是什么意思?
为每个按钮创建通用方法并使用touchup action直接获取sender.currentTitle。
@Anbu.Karthik 是对的,你应该使用sender.currentTitle
【参考方案1】:
您可以将发送者与您的按钮实例进行比较。
func pincodeLogic(_ sender: UIButton)
switch sender
case oneButton:
print("oneButton pressed")
case twoButton:
print("twoButton pressed")
default:
print("unknown button pressed")
【讨论】:
我收到的发件人不是字符串。 @iosbegindevel 我知道。我有你可以比较 UIButton 对象 这是我想要的方式。谢谢。【参考方案2】:要使用发送者访问按钮中存在的标签内容,这是一个示例:
@IBAction func OneButton(_ sender: UIButton)
print(sender.titleLabel?.text)
所以你可以这样做:
@IBAction func OneButton(_ sender: UIButton)
pincodeLogic(sender)
func pincodeLogic(_ sender: UIButton)
if let number = sender.titleLabel?.text
print(number)
我希望我一直在你身边。告诉我。
【讨论】:
点击一个按钮也看不到打印日志,【参考方案3】:如果您想访问按钮操作以执行某些特定任务。只需在每个按钮上添加一个标签,并将相同的目标添加到所有按钮。
@IBAction func btnAction(_ sender: UIButton)
switch sender.tag
case 1:
print("oneButton pressed")
case 2:
print("twoButton pressed")
default:
print("unknown button pressed")
如果您只需要打印按钮标题,请执行以下操作。
@IBAction func btnAction(_ sender: UIButton)
print(sender.titleLabel?.text! as! String)
【讨论】:
以上是关于如何在swift5中获取UIButton名称?的主要内容,如果未能解决你的问题,请参考以下文章