Ich habe ViewController, der so aussieht. Es gibt eine Parent-ScrollView, die UIView (wrapperView) enthält, und diese Wrapper-Ansicht enthält TextView und ImageView. Diese einfache Struktur wird vom Schnittstellen-Generator mit allen Einschränkungen erstellt, die benötigt werden, damit es gut funktioniert.Platzieren von UiView als Unteransicht programmgesteuert
In einigen Fällen muss ich programmatisch in meinem wrapperView direkt unter Image (grüner Pfeil Punkte gibt) eine weitere UIView hinzuzufügen.
Also habe ich xib Datei für meine neue UIView und separate Klasse für sie
class MyView : UIView {
class func instanceFromNib() -> UIView {
return UINib(nibName: "MyView", bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! UIView
}
}
Und ich Code meiner Viewcontroller ich
hinzugefügtlet myView = MyView.instanceFromNib()
myView = CGRect(x: 0, y: 0, width: 300, height: 80)
wrapperView.addSubview(myView)
jetzt sehe ich myView auf dem Bildschirm in der Oberseite des wrapperView aber wenn ich versuche, Einschränkungen gelten wie
NSLayoutConstraint(item: myView, attribute: .top, relatedBy: .equal, toItem: myImageView, attribute: .bottom, multiplier: 1.0, constant: 8).isActive = true
bekam ich
Unable Einschränkungen gleichzeitig erfüllen
Was mache ich falsch?
Haben Sie 'transmittsAutoresizingMaskIntoConstraints' von' myView' auf 'false' gesetzt? – Akki
Sie müssen die 'UIScrollView'-Inhaltsgröße aktualisieren, nachdem Sie eine neue Ansicht hinzugefügt haben. versuchen Sie 'layoutIfNeeded()' aufzurufen. – AaoIi