例如
问题:如何使所有UILabel文本大小与最长文本相同,并且同时使字体大小根据屏幕大小缩小或增大?
例如。 iPhone 8 Plus字体大小应大于iPhone SE字体大小,因为我们在iPhone 8 Plus上有更多的空间。
答案 0 :(得分:0)
您可以使用以下方法检查哪个标签的字符数最多:
label.text.count
一旦知道最长的,就可以使用简单的扩展名,例如:
extension UILabel{
func anchorFontSize(toLabel: UILabel) {
let text: NSMutableAttributedString = NSMutableAttributedString(attributedString: toLabel.attributedText!)
text.setAttributes([NSAttributedStringKey.font: toLabel.font], range: NSMakeRange(0, text.length))
let context: NSStringDrawingContext = NSStringDrawingContext()
context.minimumScaleFactor = toLabel.minimumScaleFactor
text.boundingRect(with: toLabel.frame.size, options: NSStringDrawingOptions.usesLineFragmentOrigin, context: context)
let adjustedFontSize: CGFloat = toLabel.font.pointSize * context.actualScaleFactor
let font = self.font.fontName
self.font = UIFont(name: font, size: adjustedFontSize)
}
}
将其他标签的字体大小固定到最长标签的字体大小。