本文只作自用笔记,不喜勿喷,诚谢纠错。
1.将字符串转换成NSString
let messtr = "判断字符串宽高" as NSString
let width = messtr.size(attributes: [NSFontAttributeName:UIFont.systemFont(ofSize: 18)]).width
let height = messtr.size(attributes: [NSFontAttributeName:UIFont.systemFont(ofSize: 18)]).height
print("宽:\(width)","高:\(height)")
打印结果:
宽:128.394 高:21.4805
2.纯swift实现
let messtring:String = "判断字符串宽高"
let attributes = [NSFontAttributeName:UIFont.systemFont(ofSize: 18)] //设置字体大小
let option = NSStringDrawingOptions.usesLineFragmentOrigin
//这里有个参数1——width和参数2——heigh经测试应该是设置横向和纵向的最大计算宽度和高度,如有不妥希望指出,相互学习,谢谢。(即当宽度接近与320.0时,就会换行,通过改变高度来计算字符串长度)
let rect:CGRect = messtring.boundingRect(with: CGSize.init(width: 320.0, height: 999.9), options: option, attributes: attributes, context: nil)//获取字符串的frame
print("宽:\(rect.width),高:\(rect.height)")
打印结果:
宽:128.394,高:21.4805