私はconstraintEqualToAnchor()
を使って、自動レイアウトの制約を持つビューを設定してみてください:コードの最後の行で自動レイアウト制約は、constraintEqualToAnchor()を使用して設定した後で変更する方法はありますか?
override func viewDidLoad() {
super.viewDidLoad()
let myView = UIView()
myView.backgroundColor = UIColor.orangeColor()
myView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(myView)
myView.leftAnchor.constraintEqualToAnchor(view.leftAnchor).active = true
myView.trailingAnchor.constraintEqualToAnchor(view.trailingAnchor).active = true
myView.topAnchor.constraintEqualToAnchor(view.topAnchor).active = true
myView.bottomAnchor.constraintEqualToAnchor(view.bottomAnchor).active = true
/******************************************/
/* I try to change one of the constraints */
/******************************************/
myView.leftAnchor.constraintEqualToAnchor(view.rightAnchor, constant: -100).active = true
}
、私は、制約の1つを変更してみてください。 constraintEqualToAnchor()?
を使用している場合
"<NSLayoutConstraint:0x7fb53a5180d0 H:|-(0)-[UIView:0x7fb53a5190b0](LTR) (Names: '|':UIView:0x7fb53a519240)>",
"<NSLayoutConstraint:0x7fb53a51f660 H:[UIView:0x7fb53a519240]-(-100)-[UIView:0x7fb53a5190b0](LTR)>",
"<NSLayoutConstraint:0x7fb53a711ee0 'UIView-Encapsulated-Layout-Width' H:[UIView:0x7fb53a519240(414)]>"
私はそれが仕事だろうと思ったが、それはコンソールログにいくつかのエラーを与え、私はそれらを設定した後、後に制約を変更する正しい方法は何ですか?
私は偽 'に' myView.leftAnchor.constraintEqualToAnchor(view.leftAnchor).active'を設定すると考えていました'を変更する前に(最後の行)、それでも失敗します。私はここにいくつかの誤解があると思います... –
制約への参照を保持して、定数を直接設定しようとしましたか?ビューに新しい制約を適用し続けることはできません。そうしないと、制約が過度になります。 –
@LucasDerraughレイアウトアンカーでどのように行うのかよくわかりません。答えにコードを表示できますか? –