zoukankan      html  css  js  c++  java
  • swift判断 UILabel文字是否被折叠 是否有省略号 是否没显示全

      当UILabel中的文字过多或者超过设定的宽度的时候,系统会自动处理折叠剩余的字符,并在最后显示省略号。

      但是我们开发过程中有时候会需要判断是否被折叠,比如cell中只显示一行文字,点击文字展开剩余的文字

      这里用方法来表述,如果项目中很多处用到需要处理的情况可以把这个改写为UILabel的扩展类,使用起来会更加方便

    //判断文本标签的内容是否被截断
        func isTruncated (lbl : UILabel, text : String) ->(Bool) {
            let labelText = text
            
            //计算理论上显示所有文字需要的尺寸
            let rect = CGSize( lbl.bounds.width, height: CGFloat.greatestFiniteMagnitude)
            let labelTextSize = (labelText as NSString)
                .boundingRect(with: rect, options: .usesLineFragmentOrigin,
                              attributes: [NSAttributedString.Key.font: lbl.font], context: nil)
            
            //计算理论上需要的行数
            let labelTextLines = Int(ceil(CGFloat(labelTextSize.height) / lbl.font.lineHeight))
            
            //实际可显示的行数
            var labelShowLines = Int(floor(CGFloat(lbl.frame.size.height) / lbl.font.lineHeight))
            if lbl.numberOfLines != 0 {
                labelShowLines = min(labelShowLines, lbl.numberOfLines)
            }
            
            //比较两个行数来判断是否需要截断
            return labelTextLines > labelShowLines
        }
    

      

  • 相关阅读:
    R学习笔记3 数据处理
    R学习笔记2 因子
    R学习笔记1 介绍R的使用
    正则表达式之邮箱、手机号码、电话号码,url地址
    vue之axios运用
    angularJS导出数据到Excel
    vue2全选反选
    css设置垂直居中
    js实现鼠标选中文本改变选中区域颜色以及给选中区域加上html标签
    安装了Vetur之后的配置
  • 原文地址:https://www.cnblogs.com/huangzhenwei/p/9760863.html
Copyright © 2011-2022 走看看