zoukankan      html  css  js  c++  java
  • UILabel.sizeThatFits

    需求:

    UIScrollView -- UIView -- UILabel

    让UILabel来显示一段文本,如果超过一屏,那么自动滚动条。

    思路:

    view.addSubview(sc)
    
    sc.addSubview(vc)
    
    vc.addSubview(label)
    
    ......
    
    label.font = UIFont.systemFont(ofSize: defaultFont18)
    
            label.numberOfLines = 0
    
            label.textColor = .gray
    
            label.adjustsFontSizeToFitWidth = true
    
            label.text = "xxxx"
    
    label.lineBreakMode = NSLineBreakMode.byWordWrapping
    
    //        label.backgroundColor = .red
    
            label.snp.makeConstraints { (make) in
    
                make.leading.equalToSuperview().offset(10)
    
                make.trailing.equalToSuperview().offset(10)
    
                make.top.equalToSuperview().offset(5)
    
                make.width.equalToSuperview().offset(-20)
    
            }
    
            let size = label.sizeThatFits(CGSize( scWidth - 20, height: CGFloat(MAXFLOAT)))
    
            print("size:(size.height)")

    //关键就在这里,这里实际了,固定宽度,求取实际的label高度。如果是sizetofit来实现,会出现一行文本直接就是一行,不会自动折行,导致显示不全。
    //1、111111111111111111111111111111111==》这里开始超过一屏。1111111111111111111111。 label.frame
    = CGRect(x: 10, y: 10, scWidth - 20, height: size.height) labelView.frame = CGRect(x: 0, y: 0, scWidth, height: label.frame.height + 50) print("label:(label.frame.height)") sc.contentSize = CGSize( scWidth, height: labelView.frame.height)
    道法自然
  • 相关阅读:
    简易基础版单页面应用
    nginx服务器部署
    vim基础命令
    jsdoc — js注释
    eslint — js书写规范
    stylelint — css书写规范
    gulpfile.js(编译sass,压缩图片,自动刷新浏览器)
    gulp安装使用
    git常用命令
    generator-ivweb 基于react-redux的多页脚手架
  • 原文地址:https://www.cnblogs.com/jiduoduo/p/14640837.html
Copyright © 2011-2022 走看看