ios - 如何删除空 UITextView 上的空白文本容器

标签 ios swift uitextview

我已经将属性 textContainerInsetlineFragmentPadding 设置为零,因为通过此 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 在有文本时的呈现方式

enter image description here

这里是多行

enter image description here

这是它在没有文本的情况下的呈现方式

enter image description here

如果 UITextView 的文本为空,是否可以将高度设置为 0

编辑:

  1. UITextView 没有使用约束,我不打算设置高度约束,因为我希望此 UITextView 自动调整大小,具体取决于文本被设置到其中

  2. 这是 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/

相关文章:

iOS 应用程序 - iPad 上的 UI 仅适用于 iPhone 应用程序

swift - 这个AnyObject怎么可能?具有 boolValue 属性

ios - 类型 'ParseSource' 不符合协议(protocol) 'InputSource'

ios - String的书写方向

ios - 从 Xcode 11.1 升级到 Xcode 11.2 后,应用程序因 _UITextLayoutView 崩溃

ios - 禁用 UISearchBar 中的搜索字段

iphone - 使用 performSelectorOnMainThread 调用非 void 函数

ios - 设备旋转时 UITableViewHeader 不保持位置

swift - 为什么可选链接会导致重叠访问错误?

ios - 在 objective-c 中更改电话号码的颜色(UITextView ...在 xib 文件中启用检测电话号码)