獲取字串的寬、高 (Swift 4)
阿新 • • 發佈:2019-01-30
為方便呼叫,封裝普通字串與富文字的寬高方法
/**獲取字串尺寸--私有方法*/
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 }
/**獲取字串高度H*/
func getNormalStrH(str: String, strFont: CGFloat, w: CGFloat) -> CGFloat {
return getNormalStrSize(str: str, font: strFont, w: w, h: CGFloat.greatestFiniteMagnitude).height
}
/**獲取字串寬度W*/
func getNormalStrW(str: String, strFont: CGFloat, h: CGFloat) -> CGFloat { return getNormalStrSize(str: str, font: strFont, w: CGFloat.greatestFiniteMagnitude, h: h).width }
/**獲取富文字字串高度H*/
func getAttributedStrH(attriStr: NSMutableAttributedString, strFont: CGFloat, w: CGFloat) -> CGFloat {
return getNormalStrSize(attriStr: attriStr, font: strFont, w: w, h: CGFloat.greatestFiniteMagnitude).height
}
/**獲取富文字字串寬度W*/
func getAttributedStrW(attriStr: NSMutableAttributedString, strFont: CGFloat, h: CGFloat) -> CGFloat { return getNormalStrSize(attriStr: attriStr, font: strFont, w: CGFloat.greatestFiniteMagnitude, h: h).width }