Ist es möglich, eine Variable in einem Markennamen zu verwenden.Variable in Etikett Name - Swift
Zum Beispiel heißt mein Etikett button1text
und ich habe eine Variable var x = 1
.
Gibt es eine Möglichkeit, dies zu tun button(x)text
?
Ist es möglich, eine Variable in einem Markennamen zu verwenden.Variable in Etikett Name - Swift
Zum Beispiel heißt mein Etikett button1text
und ich habe eine Variable var x = 1
.
Gibt es eine Möglichkeit, dies zu tun button(x)text
?
Nein. Sie können keinen Variablennamen im Bezeichner haben.
Variablennamen werden zur Kompilierzeit ausgewertet, nein, zur Laufzeit ist dies nicht möglich.
Alternativ ein Array verwenden oder Tags zu den Etiketten zuweisen und das Etikett mit viewWithTag
Sie können mit Mirror
Reflexion verwenden bekommen. Die Fähigkeiten werden im Kontext Sie sehr begrenzt, aber Sie können wie etwas versuchen:
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"
}
}
}
}
Sie sollten überprüfen, [Wörterbücher] (https://developer.apple.com/library/content/documentation/Swift/Conceptual /Swift_Programming_Language/CollectionTypes.html). – the4kman
Related: https://stackoverflow.com/questions/27321778/swift-converting-a-string-into-a-variable-name, https://stackoverflow.com/questions/31175358/for-loop-variable-name -use-swift, https://stackoverflow.com/questions/40585591/how-can-i-access-to-variable-name-and-change-string-to-it –
Diese Frage ist eine reine Swift-Frage, dort ist keine Notwendigkeit für Watchkit-Tag. –