首页 > 解决方案 > Swift - UITextView 不显示文本

问题描述

我的UITextView不显示它text,我不知道为什么。

let linkLabel: UITextView = {
    let v = UITextView()
    v.backgroundColor = .clear
    v.text = "Link"
    v.textColor = .lightGray
    v.font = UIFont(name: "AvenirNext", size: 18)
    v.font = v.font?.withSize(18)
    v.textAlignment = .right
    v.translatesAutoresizingMaskIntoConstraints = false
    return v
}()

这是UILabel以前的,工作得很好。但我需要它是一个UITextView. 但是,如果我在代码中将其更改为UITextView喜欢,则不会显示文本。

知道为什么会这样吗?

标签: iosswiftuilabeluitextview

解决方案


您的 UITextView 框架等于 CGRect.zero 并且与 UILabel 不同,UITextView 没有内在框架。这就是为什么你看不到它。


解决方案

  1. 使用初始化(帧:CGRect)

UITextView(frame: CGRect(x: 0, y: 0, width: 100, height: 30))
  1. 稍后设置框架属性

let v = UITextView()
v.frame = CGRect(x: 0, y: 0, width: 100, height: 30)

重要的:

必须通过 InterfaceBuilder 或在代码中使用 UIView 对象的 view.addSubview 方法将 linkLabel 添加到视图中

override func viewDidLoad() {
    super.viewDidLoad()
    view.addSubview(linkLabel)
}

调试技术:

  • 调试视图层次结构

单击调试区域顶部栏中的Debug View Hierarchy按钮以检查暂停应用的视图层次结构的 3D 渲染

在此处输入图像描述


推荐阅读