How to rewrite visual format
addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("|-[label]-|", options: .AlignAllBaseline, metrics: nil, views: ["label": label]))
addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-[label]-|", options: .AlignAllCenterX, metrics: nil, views: ["label": label]))
by moving to layout guides (with margins)?
I tried it with
label.topAnchor.constraintEqualToAnchor(layoutMarginsGuide.topAnchor).active = true
label.leftAnchor.constraintEqualToAnchor(layoutMarginsGuide.leftAnchor).active = true
label.bottomAnchor.constraintEqualToAnchor(layoutMarginsGuide.bottomAnchor).active = true
label.rightAnchor.constraintEqualToAnchor(layoutMarginsGuide.rightAnchor).active = true
but does not work. Even layoutMarginsGuide.layoutFrame
does not have expected value (yes I call it in layoutSubviews
after super
is executed). Constraints are set, but acts like there is zero margin. It layouts and gives expected layoutFrame
only when the layout margin is set to negative; which is not what I want obviously, but demonstrates that constraints are set with margins guides. Looks like I'm missing something...