Ich habe zwei Ansichten. subLabel
und tinyImage
Horizontale Einschränkung verursacht Absturz in iOS
Ich möchte die tinyImage rechts von subLabel, mit einem Abstand von 10 Pixel. Das ist, was ich habe:
let horizontalConstraint = NSLayoutConstraint(item: subLabel, attribute: NSLayoutAttribute.Trailing, relatedBy: NSLayoutRelation.Equal, toItem: tinyImage, attribute: NSLayoutAttribute.Leading, multiplier: 1, constant: 10)
tinyImage.addConstraint(horizontalConstraint)
Wenn ich diesen Code ausführen, stürzt, und ich sehe so etwas wie:
The view hierarchy is not prepared for the constraint: <NSLayoutConstraint:0x7fe89a6ece10 UILabel:0x7fe89a764cf0'2'.trailing == UIImageView:0x7fe89a765bb0.leading + 10>
When added to a view, the constraint's items must be descendants of that view (or the view itself). This will crash if the constraint needs to be resolved before the view hierarchy is assembled. Break on -[UIView(UIConstraintBasedLayout) _viewHierarchyUnpreparedForConstraint:] to debug.
Sind tinyImage- und subLabel-Geschwisteransichten? –
Sie sollten sicherstellen, dass "tinyImage" und "subLabel" zur Ansichtshierarchie hinzugefügt wurden, und Sie sollten die Einschränkung der allgemeinen Superansicht hinzufügen, anstatt "tinyImage", also wahrscheinlich "self.addConstraint" oder "self.view". addConstraint 'abhängig davon, was' self' ist – Paulw11
@ReyGonzales Ja, infoView fügt beide Ansichten als Unteransichten hinzu. – TIMEX