首先上图说明:
一、对于UILabel,正常设置的text,numberOfLines设置为0,也就是多行时,超出高度部分会正常显示省略号(设置了最大高度)。但是如果需要设置文本的间距以及颜色,就需要使用attributedTest
<pre>
let text = "需要显示的长文本"
let paraph = NSMutableParagraphStyle()
paraph.lineSpacing = 6 // 设置间距
let attributes = [NSParagraphStyleAttributeName: paraph]
self.detailLabel.attributedText = NSAttributedString(string: text, attributes: attributes)
self.detailLabel.lineBreakMode = .byTruncatingTail
</pre>
使用上面的方式显示多行文本,如果多出的需要显示省略号,需要在设置完attributedText之后,设置label的lineBreakMode为尾部截断显示。这样多余的就会换行了。
二、设置固定高度,比如高度设置为80,默认label的attributedText会居中显示,即使自动布局顶端与旁边的图片对齐,文字也只会显示在中间。此时可以通过自动布局的lessThenOrEqualTo解决,当文本高度小于图片高度时,高度为文本正常高度,这样就会顶端对齐
<pre>
self.detailLabel.snp.makeConstraints { (make) in
make.top.equalTo(self.leftImageView)
make.leading.equalTo(self.leftImageView.snp.trailing).offset(11)
make.trailing.equalTo(self.titleLabel)
make.height.lessThanOrEqualTo(self.imageWidth)
}
</pre>
其中detailLabel为文本,leftImageView为左边的图片
参考文章:
1、http://www.jianshu.com/p/01a83ec7163d
2、http://www.cnblogs.com/zrr-notes/p/6068456.html