EDIT:定数ではなく乗数を変更する必要があるようです。単一のIB制約の単純なプログラムによる変更が更新されない
私は、特定のイベントが発生した後、viewDidLoad以外のボタンの幅をプログラムで変更しようとしています(問題がある場合)。
IBのボタンの幅をViewsの幅と同じに設定しました。
私は、ボタンの幅の制約のためにIBのアウトレットを作成しました:
@IBOutlet weak var imageButtonWidth: NSLayoutConstraint!
は、次に私が試してみた:
imageButtonWidth.constant = 0.49
view.setNeedsLayout()
、
imageButtonWidth.constant = 0.49
view.layoutIfNeeded()
と
imageButtonWidth.constant = 0.49
self.view.updateConstraints()
を
私はimageButtonWidth.constant = 0.49でブレークポイントを設定しました。アプリケーションをクラッシュさせて、 "正常に動作していない"ということを知っています。
ノー問題と別のアプリケーション上でのviewDidLoadで
imageButtonWidth.constant = 0.49
self.view.updateConstraints()
を使用しましたが、コールが外のviewDidLoadされている場合、それは認められないだろうと思われます。
アドバイスをいただければ幸いです!
self.view.layoutIfNeeded()
制約を更新することができますが、おそらく制約の値が低いように思わので、それはそう間違ってコンセントを接続して
幅の定数0.49を指定すると、ボタンの幅が1ポイント未満になります。それが正しい価値だと確信していますか?コンソールに制約エラーがありますか? – jrturton
エラーはありません。ビューの半分よりも少し小さく、表示するボタンの幅が全く同じ場合は1の定数になります。応答に感謝します! – genericguy25
定数を乗数と間違えていると思います。乗数は変更できません。 – jrturton