私はUIViewController
の可視範囲外のボタンをアニメーション化しようとしています。私はアニメーションの一部として削除するmyButtonLeading
と呼ばれるストーリーボードに制約設定をしてから、newCenterConstraint
という新しい制約を追加したいと思います。ビューに制約をインストールできないのはなぜですか?
@IBAction func updateDidTouch(_ sender: Any) {
UIView.animate(withDuration: 0.5, delay: 0, options: UIViewAnimationOptions.curveEaseInOut, animations: {
let newCenterConstraint = NSLayoutConstraint(item: self.myButton, attribute: .centerX, relatedBy: .equal, toItem: view, attribute: .centerX, multiplier: 1.0, constant: 0.0)
self.myButton.removeConstraint(self.myButtonLeading)
self.myButton.addConstraint(newCenterConstraint)
self.view.layoutIfNeeded()
}, completion: nil)
}
私は今私にtoItem: view
に私の参照については、次のエラーメッセージを与えているコード。
閉包で 'self'を暗黙的に使用。 「自己」を使用してください。
ビュー上の制約をインストールすることができません:私は言ってエラーメッセージを表示して
self.view
私のアプリのクラッシュを使用する場合、キャプチャ セマンティクス明示を作るだけに。制約の参照は、ビューのサブツリー外のものを参照しますか? それは違法です。
ここで私は新しいcenterX制約を追加する際に間違っていますか?
がself.viewに関連するボタンのスーパーですか? – CZ54