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框架。这就是为什么你看不到它。

解决方案

  • 使用 init(frame: CGRect)

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

  • 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 - 在 tableview 中缓存视频

    ios - Swift如何在AppDelegate提取中发送电子邮件?

    swift - 将字符串转换为cllocationcoordinate2d swift数组

    swift tableview 图像和标签

    ios - 为什么 "+ (void)setAnimationStartDate:(NSDate *)startDate;"不起作用

    ios - iOS Swift-某些设备上的EXC_BAD_INSTRUCTION

    ios - 无法从Segue Swift获得值(value)3

    ios - 通过按钮从不同的 View 更新标签

    ios - 更改 UILabel 文本但保留其余属性

    ios - 自定义UILabel下方的 View 位置