ios - Swift - UITextView 不显示文本

标签 ios swift uilabel 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,就像在代码中一样,文本不会显示。

知道为什么会这样吗?

最佳答案

您的 UITextView 框架等于 CGRect.zero,与 UILabel 不同,UITextView 没有 intrinsic框架。这就是您看不到它的原因。


解决方案

  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 添加到 View

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

调试技巧:

  • 调试 View 层次结构

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

enter image description here

关于ios - Swift - UITextView 不显示文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59753900/

相关文章:

ios - UITableViewCell 和 UIViewController 的简洁开发模式

ios - 在单个 tableview 单元格中显示两个数组值

ios - 有没有办法获得引用以查看本地通知中剩余的剩余时间,并更新它?

swift - 为什么我不能访问这个 Swift 字典中的项目?

iphone - UILabel 动态宽度与单元格上的 sizeToFit

ios - 如何在 UIView 中安排动态创建的 UILabels?

ios - 在 iOS 中使用 ARC 对 dealloc 进行单元测试

ios - 您可以将 Google 地球集成到您的 iOS 应用程序中吗?

ios - 解析具有垂直模糊约束的 TextView

swift - 自定义 UILabel 类不更改属性?