私は自分のアプリケーションの設計にAutoLayoutを使用しています。 HeaderViewについては、AspectRatioを使って高さを設定しました。アスペクト比の制約値をプログラムで変更する
メインビューにデータが含まれていない場合、HeaderViewの高さは0にする必要があります。データを追加するときは元のアスペクト比に設定する必要があります。
任意の制約の定数値を変更すると、アスペクト比を変更できますか?私は以下のコードを試しましたが、正しく動作していません。
@IBOutlet weak var constOptions_Height: NSLayoutConstraint!
if arrData.count == 0 {
constOptions_Height.constant = 0.0
}
else{
constOptions_Height.constant = 50.0
}
私は定数ではなく乗数の値を変更する必要があると思います。 constOptions_Height.multiplier = cgfloatValue – Rishabh
@Rishabh乗数は取得専用のプロパティです。 –
次に、ビューの位置を変更するためにフレームを割り当てるのとほぼ同じように、乗数を変更するためにその制約を再作成することができます。あるいは単にストーリーボードの代わりにコードからその制約を作成します。 https://stackoverflow.com/questions/31334017/how-to-set-aspect-ratio-constraint-programmatically-in-ios – Rishabh