gpt4 book ai didi

swift - 以编程方式更新 UITextView 高度

转载 作者:行者123 更新时间:2023-11-30 12:08:43 25 4
gpt4 key购买 nike

我正在尝试根据内容更新 UITextView 的高度。我见过this solution但无法让它与我当前的代码一起工作(仍在学习 swift)

我这样定义 UITextView:

    let eventDetailInfoTextBox : UITextView = {
let textbox = UITextView()
textbox.backgroundColor = UIColor.clear
textbox.layer.borderWidth = 1
textbox.layer.borderColor = ColorPallet.AppTertiaryColor.cgColor
textbox.layer.cornerRadius = 10
textbox.setNeedsDisplay()
let contentSize = textbox.sizeThatFits(textbox.bounds.size)
textbox.isEditable = false
return textbox
}()

然后将 subview 添加到 setupViews() 中,并使用调用 setupEventDetailInfoTextBox() 定义其在 View 中的位置

    fileprivate func setupEventDetailInfoTextbox() {

print("Event Detail Info Text Box Height: \(eventDetailInfoTextBox.contentSize.height)")

var frame = eventDetailInfoTextBox.frame
frame.size.height = eventDetailInfoTextBox.contentSize.height
eventDetailInfoTextBox.anchor(eventDetailMapView.bottomAnchor, left: self.leftAnchor, bottom: nil, right: self.rightAnchor, topConstant: 8, leftConstant: 10, bottomConstant: 0, rightConstant: 10, widthConstant: 0, heightConstant: frame.size.height)

}

对 .anchor 的调用基于通过此 link 找到的 Lets Build That App 框架基本上封装了 Xcode 的本地函数。我知道这是可行的,并且在我的应用程序中重复使用了相同的功能。

print 语句的输出为 -8,并由适合显示 1 行文本(有时)的高度表示。

如果我的文本超过 1 行,谁能明白为什么我的文本框拒绝变大?

我正在使用 IOS 10、Xcode 8 并使用 swift 3 编写。

最佳答案

按照以下步骤操作

  • 创建TextView的高度约束导出。
  • 计算 Textview 的内容高度。
  • 更新 TextView 高度约束常量值。
  • 调用layoutIfNeeded()函数。

希望它能起作用。

关于swift - 以编程方式更新 UITextView 高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46342466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com