私はUIStackViewを持っていて、このビューにいくつかのアレンジされたビュー...時には1つ、時には2つ、3つ...などを追加したい。私は配列がUIStackViewの幅いっぱいにならないように、配置を左にして同じ幅に並べるようにします。UIStackView:同じ幅のアレンジされたビューを追加する
これは私が持っているものです。
これは私が欲しいものです:
は何とかそれを行うことが可能ですか私は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")
}
に抵抗を設定するので、あなたの本当の項目に、低くすべきである「ビューを埋める」ための高抵抗にする必要があり、「ビューを埋める」の優先順位を抱いて利用可能なスペースにサイズを変更する必要がありますビューの幅はどれくらいですか?それは固定値ですか? –
@UpholderOfTruth私は質問にコードサンプルを追加しました。 – birdy
これはうまくいかないでしょう。スタックビューは、ビューが5ptの間隔で均等に配置されるように設定されています。次に画像の幅を+ 1ptに設定します。したがって、幅はスタックビューの幅を分割し、それに応じて高さを調整することによって決定されます。私は最高のアプローチが既に明確な視野と内容の抱擁と抵抗で追加されていると思います。 –