1
私は1つのupperLabel、1つのビューとボタンを持っています。アクション上のビューのレイアウトアンカーの変更
ViewDidLoad()
の方法では、ビューにいくつかのレイアウト制約を与えました。ボタンをタップすると、それらの制約を更新する必要があります(ビューは下に移動する必要があります)。どうやってやるの。
これは私のコードです。しかし、それは動作していません。
let keyView = UIView()
override func viewDidLoad() {
keyView.frame = CGRect(x: 0, y: 0, width: 100, height: 30)
keyView.backgroundColor = UIColor.cyan
keyView.translatesAutoresizingMaskIntoConstraints = false
containerView.addSubview(keyView)
keyView.topAnchor.constraint(equalTo: upperLabel.bottomAnchor , constant: 10).isActive = true
keyView.leadingAnchor.constraint(equalTo: containerView.leadingAnchor, constant: 20).isActive = true
keyView.trailingAnchor.constraint(equalTo: containerView.trailingAnchor, constant: -20).isActive = true
keyView.bottomAnchor.constraint(equalTo: keyView.topAnchor, constant: keyView.frame.size.height).isActive = true
}
このアクションのコードは次のとおりです。
func buttonAction(sender: UIButton!) {
keyView.translatesAutoresizingMaskIntoConstraints = false
keyView.topAnchor.constraint(equalTo: upperLabel.bottomAnchor, constant: CGFloat(i*50))
keyView.leadingAnchor.constraint(equalTo: containerView.leadingAnchor, constant: 20)
keyView.trailingAnchor.constraint(equalTo: containerView.trailingAnchor, constant: -20)
keyView.bottomAnchor.constraint(equalTo: keyView.topAnchor, constant: keyView.frame.size.height)
i + =1
}
上記のコードに従って、keyViewはボタンをクリックすると下に移動する必要があります。しかし、それは下降していません。
私を助けてください。 ありがとうございます。
はなぜうん、私は偽.isActive =として初期制約を行うことで、でもそれを試してみました...そして私は新しい制約を追加したアクション –
上の以前のレイアウト制約とAddNewの制約を取り除くいけません。 –