UITextView
プログラムでtoを追加しようとしUIStackView
ていますが、画面に表示されません。
Debug View Hierarchy をチェックインすると、ビュー階層にあり、いくつかの制約がありますが、出力されたビューには表示されません。
これは私のコードです:
let stackView = UIStackView()
let textView = UITextView()
let button = UIButton()
stackView.axis = .Horizontal
stackView.spacing = 20
stackView.distribution = UIStackViewDistribution.Fill
button.setImage(UIImage(named:"image1"), forState: .Normal)
button.setImage(UIImage(named:"image2"), forState: .Selected)
textView.textAlignment = NSTextAlignment.Left
textView.textColor = UIColor.blackColor()
textView.editable = true
textView.text = ""
stackView.addArrangedSubview(textView)
stackView.addArrangedSubview(button)
ボタンがうまく追加されました。しかし、TextView を正しく表示する方法が見つかりません! 以下のような幅/高さの制約を追加しようとしましたが、うまくいかないか、うまく機能しません(バリアントによって異なります):
let widthConstraint = NSLayoutConstraint(item: textView,
attribute: NSLayoutAttribute.Width,
relatedBy: NSLayoutRelation.Equal,
toItem: stackView,
attribute: NSLayoutAttribute.Width,
multiplier: 1,
constant: 0)
stackView.addConstraint(widthConstraint)
let heightConstraint = NSLayoutConstraint(item: textView, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: stackView, attribute: NSLayoutAttribute.Height, multiplier: 1, constant: 0)
stackView.addConstraint(heightConstraint)
ただし、UITextField
, notを追加すると、UITextView
制約なしで正常に機能します。