2017-06-09 11 views
1

私はUIStackViewを持っていて、このビューにいくつかのアレンジされたビュー...時には1つ、時には2つ、3つ...などを追加したい。私は配列がUIStackViewの幅いっぱいにならないように、配置を左にして同じ幅に並べるようにします。UIStackView:同じ幅のアレンジされたビューを追加する

これは私が持っているものです。

enter image description here

これは私が欲しいものです:

enter image description here

は何とかそれを行うことが可能ですか私はUIStackVIewの幅を変更する必要があります私はどのくらい多くの手配を加えたかによって、

マイコード:

 // creating views 
    stackView = { 
     let v = UIStackView() 
     v.axis = .horizontal 
     v.alignment = .center 
     v.distribution = .fillEqually 
     v.spacing = 5 
     v.translatesAutoresizingMaskIntoConstraints = false 
     return v 
    }() 
if let img = chosenImage { 
      let imageView: UIImageView = { 
       let l = UIImageView() 
       l.translatesAutoresizingMaskIntoConstraints = false 
       l.image = img 
       return l 
      }() 
      self.stackView?.addArrangedSubview(imageView) 
      imageView.addConstraint(NSLayoutConstraint(item: imageView, attribute: .width, relatedBy: .equal, toItem: imageView, attribute: .height, multiplier: 1, constant: 1)) 
      imageView.setNeedsUpdateConstraints() 
     } else { 
      print("Something went wrong") 
     } 
+0

に抵抗を設定するので、あなたの本当の項目に、低くすべきである「ビューを埋める」ための高抵抗にする必要があり、「ビューを埋める」の優先順位を抱いて利用可能なスペースにサイズを変更する必要がありますビューの幅はどれくらいですか?それは固定値ですか? –

+0

@UpholderOfTruth私は質問にコードサンプルを追加しました。 – birdy

+0

これはうまくいかないでしょう。スタックビューは、ビューが5ptの間隔で均等に配置されるように設定されています。次に画像の幅を+ 1ptに設定します。したがって、幅はスタックビューの幅を分割し、それに応じて高さを調整することによって決定されます。私は最高のアプローチが既に明確な視野と内容の抱擁と抵抗で追加されていると思います。 –

答えて

2

あなたが最後にあなたのStackViewに空のクリアな視界を追加し、このビューのハグと抵抗の優先順位を設定することができます。これは、より高い値

あなたが指定する方法

enter image description here

+0

どのように抱擁と抵抗の優先順位を設定するには?説明していただけますか? – birdy

+0

私は自分の答えに写真を追加しました –

関連する問題