我的 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框架。这就是您看不到它的原因。
解决方案
- 使用初始化(框架: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 渲染
关于ios - Swift - UITextView 不显示文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59753900/