Swift 计算文字尺寸 - lidaoyuan/Notes GitHub Wiki

extension String {

    func textHeight(font : CGFloat , width : CGFloat) -> CGSize {
        
        return self.boundingRect(with: CGSize(width: width, height: CGFloat(MAXFLOAT)), options: [.usesLineFragmentOrigin], attributes: [NSAttributedString.Key.font : UIFont.systemFont(ofSize: font)], context: nil).size
    }
    func boldTextHeight(font : CGFloat , width : CGFloat) -> CGSize {
        
        return self.boundingRect(with: CGSize(width: width, height: CGFloat(MAXFLOAT)), options: [.usesLineFragmentOrigin], attributes: [NSAttributedString.Key.font : UIFont.boldSystemFont(ofSize: font)], context: nil).size
    }
    
    func textViewHeight(font : CGFloat , width : CGFloat) -> CGSize {
        
        return self.boundingRect(with: CGSize(width: width, height: CGFloat(MAXFLOAT)), options: [.usesFontLeading, .usesLineFragmentOrigin], attributes: [NSAttributedString.Key.font : UIFont.systemFont(ofSize: font)], context: nil).size
    }
}