Swift-UITextView不显示文本

问题描述 投票:0回答:2

我的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,则不会显示文本。

知道为什么会这样吗?

ios swift uilabel uitextview
2个回答
3
投票

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


解决方案>>

  1. 使用init(frame:CGRect)

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

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

重要:

必须通过InterfaceBuilder或代码将linkLabel添加到视图中

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

0
投票

您可以像下面一样使用sizeToFit()和isScrollEnabled为false

© www.soinside.com 2019 - 2024. All rights reserved.