将UILabel的宽度精确调整为标签中文本的长度

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

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

“

`func createTxt(fontColor:UIColor,xco:CGFloat,yco:CGFloat,widthLength:CGFloat,heightLength:CGFloat,短语: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
3个回答
1
投票

如果需要查找标签的尺寸并手动设置边框,则可以使用sizeThatFits(_:)方法。

示例:

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

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


0
投票

用文本填充标签,然后:

label.sizeToFit()

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


0
投票

如果将UILabel设置为框架,则应使用:

label.sizeToFit()

如果在情节提要中设置UILabel,则仅设置其顶部,底部和水平约束。

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