我已经将属性 textContainerInset
和 lineFragmentPadding
设置为零,因为通过此 SO answer 删除了填充和边距.
// this is inside a UITextView Subclass
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.textContainerInset = .zero
self.textContainer.lineFragmentPadding = 0
}
这是 UITextView
在有文本时的呈现方式
这里是多行
这是它在没有文本的情况下的呈现方式
如果 UITextView
的文本为空,是否可以将高度设置为 0
?
编辑:
UITextView
没有使用约束,我不打算设置高度约束,因为我希望此UITextView
自动调整大小,具体取决于文本被设置到其中这是 UITableViewCell 中的
isScrollEnabled = false
UITextView,它会根据从 api 服务器获取的数据自动调整大小。
关于:
语言:Swift 3.2
集成开发环境:Xcode 9.2
最佳答案
感谢uhuru的答案我已经为我的代码制定了一个不需要太多修改的答案。
首先,我以编程方式为 UITextView
设置了高度限制。
// outside the scope
var contentTextViewConstraint: NSLayoutConstraint?
// inside awakeFromNib
self.contentTextViewConstraint = NSLayoutConstraint(
item: self.lblContent,
attribute: NSLayoutAttribute.height,
relatedBy: NSLayoutRelation.equal,
toItem: nil,
attribute: NSLayoutAttribute.notAnAttribute,
multiplier: 1,
constant: 0)
self.contentTextViewConstraint?.isActive = false
然后根据String
// inside the setup
let contentText: String = model.contentText
self.tvContent.text = contentText
self.contentTextViewConstraint?.isActive = contentText.isEmpty
关于ios - 如何删除空 UITextView 上的空白文本容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48415828/