没修正之前是这样的:
可以看到每行的文本由于中文、英文、表情等等的渲染,造成了文本行间距各不相同,之前尝试了直接为属性字符串设置文本间距的属性,但并没有什么用,文本间距只是在不相等的状况下增加了我设置的间距。。。
后来参考了下git上的使用(好好看使用说明少走弯路),在“文本行位置调整”这里提到了这一现象并给出了解决方案,贴上连接:https://github.com/ibireme/YYText
但这里YYTextLinePositionSimpleModifier对象的fixedLineHeight属性所修正的是字体渲染的baseline
基线:
@property (assign) CGFloat fixedLineHeight; ///< The fixed line height (distance between two baseline).
提到baseline就要说字形描述集了,贴张图一目了然
可以看到baseline并不是所有字体的最下端,它只是一条假想的参照线,以此为基础进行字形的渲染。而从YYLabel所产生的行间距不同来看,应该是利用了上一行字体的下缘线和下一行字体的上缘线做处理,由于汉字和英文、表情之类的上下缘线存在差异,就造成了行间距的不同。那么我们可以忽略上下缘线,以baseline为基准,设置两行文本之间的间距,这样看起来就工整多了。
设置后的效果: