Xcode - Swift,UITextView 不会显示在 UIStackView 上



我知道已经有类似的问题了,但他的解决方案并没有解决我的问题。

我所拥有的是,我已经使用故事板创建了一个视图控制器,然后将一个子堆栈视图放在上面。

使用IBOutlet,我已经将UIStackView链接到自定义视图控制器类。

所有的东西都正确地连接在一起,这不是问题所在(我已经确定了)。

我的问题是,我似乎无法在UIStackView中显示UITextView。

这是我的代码(在视图控制器的一个函数中):

let textView = UITextView()
textView.text = "test"
stackView.addArrangedSubview(textView) //stackView is the IBOutlet

我已经能够使用使UITextView显示在父视图上

let pos = CGRect(x: 100, y: 100, width: 200, height: 200)
let textView = UITextField(frame: pos)
textView.text = "test"
//stackView.addArrangedSubview(textView)
self.view.addSubview(textView)

不,用stackView取消注释行,然后注释掉self.view.addSubview 是行不通的

但是,如果我使用UITextField,我会设法在UITabView中显示一些内容。这太烦人了。。。。

有什么建议吗?

堆栈视图不知道文本视图的大小,因为默认情况下它是可滚动的。您需要禁用滚动:

textView.isScrollEnabled = false

您必须从文本视图向堆栈视图添加0的约束。

禁用滚动对我不起作用,但使用高度约束设置定义的高度对我起作用。我没有使用子视图-在我的情况下,只需要直接在UITextView上设置高度约束。

您不应该将手动帧设置与自动布局(UIStackView内部使用的)混合使用@Lawrence413的答案是错误的,并且错误地使用了UIStackView

以下是一篇描述UIStackView及其使用方法的博客文章:http://www.raizlabs.com/dev/2016/04/uistackview/

注意UIStackViewDistribution以及如何使用它来调整arrangedSubviews的大小。

UITextView需要一个框架。并使用addSubview而不是addArrangedSubview

我使用了以下内容,文本视图在堆栈视图中显示得很好:

let textView = UITextView(frame: CGRectMake(0, 0, 100, 100))
textView.text = "test"
textView.backgroundColor = UIColor.redColor()
stackView.addSubview(textView)

相关内容

  • 没有找到相关文章

最新更新