是否可以在标签名称中使用变量。
例如,我的标签名为button1text
,我有一个变量var x = 1
。
有没有办法执行此操作button(x)text
?
答案 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"
}
}
}
}