UILabel.sizeThatFits

需求:

UIScrollView -- UIView -- UILabel

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

 

UILabel.sizeThatFits

 

思路:

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(width: scWidth - 20, height: CGFloat(MAXFLOAT)))

        print("size:\(size.height)")

//关键就在这里,这里实际了,固定宽度,求取实际的label高度。如果是sizetofit来实现,会出现一行文本直接就是一行,不会自动折行,导致显示不全。
//1、111111111111111111111111111111111==》这里开始超过一屏。1111111111111111111111。 label.frame = CGRect(x: 10, y: 10, width: scWidth - 20, height: size.height) labelView.frame = CGRect(x: 0, y: 0, width: scWidth, height: label.frame.height + 50) print("label:\(label.frame.height)") sc.contentSize = CGSize(width: scWidth, height: labelView.frame.height)

 

上一篇:一对一直播开发的流程中哪些重点,看完我都学会了


下一篇:NGUI文字破碎