Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 如何从变量生成Labelname?(如何将字符串强制转换为UILabel)_Swift_Uilabel - Fatal编程技术网

Swift 如何从变量生成Labelname?(如何将字符串强制转换为UILabel)

Swift 如何从变量生成Labelname?(如何将字符串强制转换为UILabel),swift,uilabel,Swift,Uilabel,我想引用一个基于按钮标题的标签 我有很多按钮,我在一个动作中将它们连接在一起。我希望能够只引用一个标签,对应于按下的按钮的名称 标签名称为:阿拉贝尔、布拉贝尔、克拉贝尔。。。 按下的按钮标题为“a”、“b”、“c” 我正在使用要引用的标签名创建字符串,但不能将其用作标签名来更改此特定标签值 我想使用这个字符串来引用相应的标签,以更改其标题、颜色等 我尝试了,铸造,寻找一个函数,改变字符串为UILabel。我也在考虑一个带有指向标签指针的数组,但我甚至没有成功地建立指向单个标签的指针 //My c

我想引用一个基于按钮标题的标签

我有很多按钮,我在一个动作中将它们连接在一起。我希望能够只引用一个标签,对应于按下的按钮的名称

标签名称为:阿拉贝尔、布拉贝尔、克拉贝尔。。。 按下的按钮标题为“a”、“b”、“c”

我正在使用要引用的标签名创建字符串,但不能将其用作标签名来更改此特定标签值

我想使用这个字符串来引用相应的标签,以更改其标题、颜色等

我尝试了,铸造,寻找一个函数,改变字符串为UILabel。我也在考虑一个带有指向标签指针的数组,但我甚至没有成功地建立指向单个标签的指针

//My code

@IBOutlet weak var a: UIButton!
@IBOutlet weak var b: UIButton!
@IBOutlet weak var c: UIButton!

@IBOutlet weak var aLabel: UILabel!
@IBOutlet weak var bLabel: UILabel!
@IBOutlet weak var cLabel: UILabel!

var currentLabel : String

@IBAction func FieldDisplay(_ sender: UIButton) {
  currentLabel = sender.currentTitle! + "Label"
  currentLabel.text = "OK"
}

//what I tried
(UILabel)currentLabel.text = "OK"
currentLabel = currentLabel.to.UIlabel

移除所有插座并创建2个集合

@IBOutlet var allBts: [UIButton]!
@IBOutlet var allLbls: [UILabel]!
然后将所有标签/基站连接到每个组,并为每个组设置一个标签(lbl1&&btn1标签=0,lbl2&&btn2标签=1,依此类推)


当界面对象以这样的多对关联时(一系列按钮-标签对,如您所拥有的),通常使用两种方法。一种是为每一对分配一个标记。例如,在故事板中,第一个按钮将具有标记1,第一个标签将具有标记101。然后第二个按钮将有标签2,第二个标签将有标签102。等等

因此,现在在iAction函数中,您可以查看
发送者的
标签,将100添加到其中,然后在
视图上调用
视图和标签以查找相应的标签

另一种可能性是使用门店集合。不是三个按钮插座,而是一个按钮插座阵列;标签也是如此。现在,在iAction函数中,您可以获得其数组中按钮的
firstIndex
;如果设置正确,它是其数组中相应标签的索引。

您可以使用值(forKey:)方法

@IBAction func buttonTapped(_ sender: UIButton) {
    if let currentLabel = value(forKey: sender.currentTitle! + "Label") as? UILabel {
        currentLabel.text = "OK"
    }
}

@IBAction func buttonTapped(_ sender: UIButton) {
    if let currentLabel = value(forKey: sender.currentTitle! + "Label") as? UILabel {
        currentLabel.text = "OK"
    }
}