UITextView是从UIStackView中缺少的代码添加的



我试图用程序将UITextView添加到UIStackView,但它没有出现在屏幕上。

当我签入调试视图层次结构时,它在视图层次结构中,并且有一些约束,但不会显示在输出的视图中。

这是我的代码:

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而不是UITextView时,它可以在没有任何约束的情况下正常工作。

UITextViewUIScrollView的一个子类,因此它的大小在UIStackVIew中是不明确的。为了使大小明确,您可以根据其内容调整其大小,即使其不可滚动。简单的解决方案是:

textView.isScrollEnabled = false

(Swift 3.0语法)

我找到了缺少的东西。我不能使用指定的初始值设定项,因为我不知道在我创建它的类中文本视图的帧大小

但这很有帮助——在上面的代码stackView.distribution之后添加了这一行:

 self.alignment = UIStackViewAlignment.Fill

尝试使用

init(frame frame: CGRect,textContainer textContainer: NSTextContainer?)

因为它是UITextView的指定初始值设定项。

相关内容

  • 没有找到相关文章

最新更新