如何检查NSMutableAttributedString字体大小是否小于/大于某个值



我试图通过检查NSMutableAttributedString字体大小是否小于/大于某个值来生成if块。我找不到对此的解释。代码示例如下:

if textView.font.pointSize < 30 {
//execute
}

其中textView中的字符串为NSMutableAttributedString。有什么想法吗?

没有测试,但这应该可以完成

extension UITextView {
func maxPointSize() -> CGFloat {
var max: CGFloat = font?.pointSize ?? 0.0 //In case you mix .attributedText and .text but I'd recommand to avoid mixing them.
guard let attributedString = attributedText else { return max }
attributedString.enumerateAttribute(.font, in: NSRange(location: 0, length: attributedString.length), options: []) { value, range, pointee in
guard let font = value as? UIFont else { return }
max = font.pointSize > max ? font.pointSize : max
}
return max
}
}

其想法是枚举NSAttributedString内部的字体,并保持最大值。

然后

if textView.maxPointSize() < 30 {
//execute
}

相关内容

  • 没有找到相关文章

最新更新