Swift - The length of text determines the width and height of controls such as Label

这是一个常用的需求:比如微信未读消息的那个显示个数的小图标,个位十位百位下的数字当然有不同的长度,这样label也应该长度随内容而变。

比如label高不变长可变:
label.text = "123"
label.frame.size.width = label.text?.boundingRect(with: CGSize(width: CGFloat(MAXFLOAT), height: 20), context: nil).size.width 

重点在于:
text?.boundingRect(with: CGSize(width: CGFloat(MAXFLOAT), height: 20)
拿到text的长度,即text的MAXFLOAT即可。

高度同理:
CGSize(width: 20, height: CGFloat(MAXFLOAT))

Guess you like

Origin blog.csdn.net/SoftwareDoger/article/details/104862069