画像ビューとビューの両方をstackViewに追加し、UIStackView Distribution Fill Equallyに記載されている手順に従うことをお勧めします。
しかし、あなたは下の図および上面レイアウトガイドとの間に追加の制約を追加することによって、あなたが求めているものを達成することができます。その後、
と、より小さくなるようにそのpriority
値を設定デフォルト(1000)私の例-in私は0に500-とそのconstant
値に設定します。
その外見は点線で表示されなければなりません。これは、ビューのx軸を決定する別の制約があることを意味します。この制約が削除/無効化されている場合、点線のものをアクティブにする必要があります。
最後に、使用可能なイメージがない場合は、隠されたとして、それを設定するか、または0.0へのアルファを設定すると点線の制約を活性化しない、そのスーパービュー(imageView.removeFromSuperview()
を呼び出す)から画像表示を削除する必要があることを確認してください:
class ViewController: UIViewController {
//...
@IBOutlet weak var imageView: UIImageView!
// I'm checking in 'viewDidLoad' method just for describing purposes,
// of course, you can do the check when needed...
override func viewDidLoad() {
// if there is something wrong, you should call:
imageView.removeFromSuperview()
}
//...
}
出力は次のようになります。
画像= nilのゼロへの画像表示の絶頂制約を作る場合は、コードでそれをしなければなりません。または、スタックビューに入れることができます –
イメージの高さを指定する必要はありません。イメージには、圧縮優先度が必要な場所スペースがあります。画像がない場合は高さは0になりますが、高さがある場合はimage.sizeになります。高さ – Sergey
ありがとうInder Kumarそれは – nadim