簡體   English   中英

Xcode - Swift,UITextView不會在UIStackView上顯示

[英]Xcode - Swift, UITextView won't display on 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的約束到堆棧視圖。

您不應該將手動框架設置與AutoLayout混合( UIStackView內部使用)。 @ Lawrence413的答案是錯誤的,並且錯誤地使用了UIStackView

以下是描述UIStackView以及如何使用它的博客文章: httpUIStackView

記下的UIStackViewDistribution以及如何使用它來調整arrangedSubviews

禁用滾動對我來說不起作用,但使用高度約束設置定義的高度對我有用。 我沒有使用子視圖 - 直接在UITextView上的高度約束就是我的情況所需要的。

你需要一個UITextView框架。 並使用addSubview而不是addArrangedSubview

我使用了以下內容,文本視圖在堆棧視圖中顯示得很好:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM