我试图通过检查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
}