我正在尝试将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)
}
`
如果需要查找标签的尺寸并手动设置边框,则可以使用sizeThatFits(_:)
方法。
示例:
let label = UILabel()
label.text = someLongText
label.frame = CGFrame(point: point, size: label.sizeThatFits(CGSize(
width: CGFloat.infinity,
height: yourStaticHeight
)))
否则,您可以只使用sizeToFit()
方法,但是您需要设置布局约束才能正常工作。
用文本填充标签,然后:
label.sizeToFit()
然后您可以访问其.frame
属性以获取其.size
和.height
如果将UILabel设置为框架,则应使用:
label.sizeToFit()
如果在情节提要中设置UILabel,则仅设置其顶部,底部和水平约束。