标签中的变量名称 - Swift

时间:2017-07-23 18:26:29

标签: swift

是否可以在标签名称中使用变量。

例如,我的标签名为button1text,我有一个变量var x = 1

有没有办法执行此操作button(x)text

3 个答案:

答案 0 :(得分:2)

没有。您不能在标识符中包含变量名称。

答案 1 :(得分:2)

变量名在编译时被评估,所以不,它不可能(在运行时)。

或者使用数组或为标签指定标签,并使用viewWithTag

获取标签

答案 2 :(得分:0)

您可以使用Mirror进行反射。在您想要的上下文中,功能非常有限,但您可以尝试以下方法:

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var button1: UIButton!
    @IBOutlet weak var button2: UIButton!
    @IBOutlet weak var button3: UIButton!

    @IBAction func didTapGoButton(_ sender: Any) {
        let mirror = Mirror(reflecting: self)
        for child in mirror.children {
            if let v = child.label, v == "button2" {
                (child.value as! UIButton).titleLabel?.text = "changed"
            }
        }
    }
}