【问题标题】:Resize the width of the UILabel exactly to the length of text in the label将 UILabel 的宽度调整为标签中文本的长度
【发布时间】:2020-03-02 10:29:46
【问题描述】:

我正在尝试将 UILabel 的宽度调整为标签中文本的长度。我还想在最新版本的 Swift 中打印标签的当前大小,但不确定如何打印。

` func createTxt (fontColor: UIColor, xco: CGFloat, yco: CGFloat, widthLength: CGFloat, heightLength: CGFloat, phrase: String, fontName: String, fontSize: CGFloat) {

    let label = UILabel(frame: CGRect(x: xco, y: yco, width: widthLength, height: heightLength))
    label.textColor = fontColor
    label.font = UIFont(name: label.font.fontName, size: fontSize)
    label.textAlignment = .left
    label.text = phrase
    label.backgroundColor = .red
    self.view.addSubview(label)
}
`

【问题讨论】:

    标签: swift text resize alignment uilabel


    【解决方案1】:

    如果您需要查找标签的大小并手动设置框架,您可以使用sizeThatFits(_:) 方法。

    例子:

    let label = UILabel()
    label.text = someLongText
    label.frame = CGFrame(point: point, size: label.sizeThatFits(CGSize(
        width: CGFloat.infinity,
        height: yourStaticHeight
    )))
    

    否则您可以只使用sizeToFit() 方法,但您需要设置好布局约束才能使其正常工作。

    【讨论】:

      【解决方案2】:

      用其文本填充标签,然后:

      label.sizeToFit()
      

      然后您可以访问其.frame 属性以获取其.size.height

      【讨论】:

        【解决方案3】:

        如果你用框架设置 UILabel,你应该使用:

        label.sizeToFit()
        

        如果你在storyboard中设置UILabel,只设置它的top、bottom和Horizo​​ntal Constraint。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-09-30
          • 2020-03-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-04-30
          相关资源
          最近更新 更多