【发布时间】:2018-03-02 17:16:24
【问题描述】:
我正在尝试根据内容更新 UITextView 的高度。我见过this solution,但无法让它与我当前的代码一起工作(仍在快速学习)
我这样定义 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
}()
然后在 setupViews() 中添加子视图,并通过调用 setupEventDetailInfoTextBox() 定义其在视图中的位置
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 编写代码。
【问题讨论】:
标签: swift uitextview