iOS获取带有换行符的内容的高度

常规不带换行符的方法

  // 获取Label的高度
    func getLabelHeight(labelTitle: String, font: CGFloat, width: CGFloat) -> CGFloat {
        
        let statusLabelText : NSString = labelTitle as NSString
        
        let size = CGSize(width: width, height: CGFloat(MAXFLOAT))
        
        let dic  = NSDictionary(object: UIFont.systemFont(ofSize: font), forKey: NSFontAttributeName as NSCopying)
        
        let strSize = statusLabelText.boundingRect(with: size, options: .usesLineFragmentOrigin, attributes: dic as? [String : Any], context: nil).size
        
        return strSize.height
        
    }
    
    // 获取Label的宽度
    func getLabelWidth(labelTitle: String, font: CGFloat, height: CGFloat) -> CGFloat {
        
        let statusLabelText : NSString = labelTitle as NSString
        
        let size = CGSize(width: CGFloat(MAXFLOAT), height: height)
        
        let dic  = NSDictionary(object: UIFont.systemFont(ofSize: font), forKey: NSFontAttributeName as NSCopying)
        
        let strSize = statusLabelText.boundingRect(with: size, options: .usesLineFragmentOrigin, attributes: dic as? [String : Any], context: nil).size
        
        return strSize.width
        
    }

带有换行符等特殊符号的

 func heightForContent(str : String, width: CGFloat,font: CGFloat) -> CGFloat {
        
        let textView = UITextView(frame: CGRect(x: 0, y: 0, width: width, height: 10))
        
        textView.text = str
        
        textView.font = UIFont.systemFont(ofSize: font)
        
        let size = CGSize(width: fixedWidth, height: CGFloat(MAXFLOAT))
        let constraint = textView.sizeThatFits(size)
        return constraint.height
    }

总结

第二种好像是通用的,符合各种情况,大家可以测试一下。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,422评论 19 139
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 9,698评论 0 13
  • 公司留住员工,鼓舞员工,靠什么?很多人会说,是靠高额的薪水,优厚的福利,丰厚的奖金。 其实,这些都不是最重要的。 ...
    机械维修工阅读 2,924评论 0 0
  • 夜上受降城闻笛作者:李益回乐峰前沙似雪,受降城外月如霜。不知何处吹芦管,一夜征人尽望乡。 这是我读的第一首李益的诗...
    FIFA_Canini阅读 4,711评论 0 0
  • 今天应该还无法开始正式写作,我正在看最初的几个文案公理: 公理1:文案写作是一段精神旅程。成功的文案写作,会综合反...
    铁匠826阅读 2,976评论 4 1