[英]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
以及如何使用它的博客文章: http : UIStackView
記下的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.