Swift4.2 获取文本的高度

2018-08-10  本文已影响179人  ShineYangGod

//获取字符串尺寸
private func getNormalStrSize(str: String? = nil, attriStr: NSMutableAttributedString? = nil, font: CGFloat, w: CGFloat, h: CGFloat) -> CGSize {
if str != nil {
let strSize = (str! as NSString).boundingRect(with: CGSize(width: w, height: h), options: .usesLineFragmentOrigin, attributes: [NSAttributedStringKey.font: UIFont.systemFont(ofSize: font)], context: nil).size
return strSize
}

if attriStr != nil {
    let strSize = attriStr!.boundingRect(with: CGSize(width: w, height: h), options: .usesLineFragmentOrigin, context: nil).size
    return strSize
}

return CGSize.zero

}

//获取获取字符串尺寸高度
func getNormalStrH(str: String, strFont: CGFloat, w: CGFloat) -> CGFloat {
return getNormalStrSize(str: str, font: strFont, w: w, h: CGFloat.greatestFiniteMagnitude).height
}

//获取字符串宽度
func getNormalStrW(str: String, strFont: CGFloat, h: CGFloat) -> CGFloat {
return getNormalStrSize(str: str, font: strFont, w: CGFloat.greatestFiniteMagnitude, h: h).width
}
//获取富文本字符串高度
func getAttributedStrH(attriStr: NSMutableAttributedString, strFont: CGFloat, w: CGFloat) -> CGFloat {
return getNormalStrSize(attriStr: attriStr, font: strFont, w: w, h: CGFloat.greatestFiniteMagnitude).height
}
//获取富文本字符串宽度
func getAttributedStrW(attriStr: NSMutableAttributedString, strFont: CGFloat, h: CGFloat) -> CGFloat {
return getNormalStrSize(attriStr: attriStr, font: strFont, w: CGFloat.greatestFiniteMagnitude, h: h).width
}

上一篇下一篇

猜你喜欢

热点阅读