自動レイアウトで奇妙なバグがあります。制約を更新した後、ボタンが正しく自動レイアウトされない
私は同じビューでそれぞれスーパービューの50%の幅を持った2つのボタン(確認と削除)を並べて表示しています(テスト= trueの場合)削除ボタンは画面の幅をすべて使います。ここで
は私の自動レイアウトです:
確認ボタン:
[削除]ボタン:
のPr横幅はスーパービューの50%(1:2)です。今ここにviewWillAppear
で何が起こって、私の呼び出しです:
if test {
self.confirmButtonWidthConstraint.constant = 0
self.deleteButtonWidthConstraint.constant = (self.deleteButton.superview?.frame.width)!
}
しかし、ここではそうした後の結果である:
そして、UIデバッガをチェックした後、私は、妙にこれをそれを見ることができます削除ボタンの幅は480になり、開始xは-160になりました。だから私はここで何が起こっているのか分かりません。助けてください!
制約がAutolayout(ビューの幅など)によって決定されるデータを使用している場合は、正確なユースケースに応じて、viewDidLayoutSubviews()またはviewWillLayoutSubviews()で関連するコードを呼び出す必要があります。 –
あなたの答えをありがとう。私はそれを試みたが、同じ結果を得ている。 – Someday