0
次のプレイグラウンドコードが与えられた場合、2つのボタンがStackView全体を埋めることが予想されます。UIStackViewに表示するためにUIButtonに制約が必要な理由
import UIKit
let button = UIButton(type: .custom)
button.setTitle("My Button", for: .normal)
button.backgroundColor = .purple
let anotherButton = UIButton(type: .custom)
anotherButton.setTitle("Another Button", for: .normal)
anotherButton.backgroundColor = .orange
var stackView: UIStackView = UIStackView(frame: CGRect(x: 0.0, y: 0.0, width: 300, height: 300))
stackView.axis = .vertical
stackView.spacing = 10.0
stackView.distribution = .fillEqually
stackView.alignment = .fill
stackView.addArrangedSubview(button)
stackView.addArrangedSubview(anotherButton)
stackView
しかし、どれも表示されません。しかし、いずれかのボタンに1pxの幅制約を追加すると、両方のボタンが予想どおりにレイアウトされます。
button.widthAnchor.constraint(equalToConstant: 1)
私は困惑しています!なぜこの単一の制約が違いになるのですか?ボタンを正しくレイアウトするために「ダミーの制約」を追加するのではなく、何か他のことを行う必要がありますか?
なしのアプリで私と一緒に働いていたすべての権利 - ご返信/テストをありがとう! ButtonView内でボタンがどのように動作するかを素早く検証したいと考えていました。これを実現する最速の方法はPlayGroundでしょう。しかし、もう一度、PlayGroundが私のコードをどのようにレンダリングするかに頼ることができないのではないでしょうか。 – ckibsen