Ich fragte mich, ob es eine Möglichkeit gab, auf Einschränkungen von einer Unterklasse zuzugreifen. Ich habe eine benutzerdefinierte Ansicht. Ich bin nicht sicher, ob ich auf die Einschränkung zugreifen kann, die ich bereits in der Benutzeroberfläche eingestellt habe, also habe ich versucht, nur die Beschränkung von der Unterklasse selbst zu erstellen.Swift Constraints in Unterklasse
class PerformanceView: UIView {
func initialize() {
let heightConstraint = NSLayoutConstraint(item: self, attribute: .Height, relatedBy: .Equal, toItem: superview, attribute: .Height, multiplier: 0.47, constant: 0);
superview.addConstraint(heightConstraint)
}
}
Der obige Code ist nicht vollständig. Ich zeige nur, was ich versucht habe zu tun. Also zwei Fragen.
1) Kann ich über die Unterklasse auf eine Einschränkung für die Benutzerschnittstelle zugreifen? 2) Wenn nicht, wie kann ich eine Höhenbeschränkung in der Unterklasse erstellen, die die Hälfte der Superview-Höhe ist.
Und ich habe PerformanceView als die Klasse für die Ansicht, wie Sie sehen können, sagen alle Performance View auf der linken Seite. 4 von ihnen.
einfach eine optional (implizit ausgepackt, wenn Sie wollen) in 'NSLayoutConstraint' Eigenschaft und haben diese' initialize' Methode es eher aktualisieren, als es sich um eine lokale Variable zu machen. Nebenbei, ich könnte einen anderen Namen für diese Methode wählen, da dies zu Verwirrung mit der 'initialize'-Klassenmethode führt, die von' NSObject' geerbt wird. – Rob