前几天做项目的时候发现两个不一样font,不一样行数的lable排版特别难看,就像下图
15C2FD3C-AECA-435B-86A3-35F8CFF4451B.png然后我找了半天资料,增加行距什么的都试过了总感觉没那么准确,然后我用了YYText感觉效果好多了,上下效果图:
代码放在下边,第一次写博客,�很马虎,见谅,
NSString*leftText =@"服务地址:";
NSMutableAttributedString*leftAttrString = [[NSMutableAttributedStringalloc]initWithString:leftText];
[leftAttrStringsetYy_font:SYSTEMFONT(17)];
NSString*rightText =@"中国共产党第十九次全国代表大会开幕会于10月18日上午9:00在人民大会堂大礼堂举行。习近平代表十八届中央委员会向大会作报告中国共产党第十九次全国代表大会开幕会于10月18日上午9:00在人民大会堂大礼堂举行。习近平代表十八届中央委员会向大会作报告中国共产党第十九次全国代表大会开幕会于10月18日上午9:00在人民大会堂大礼堂举行。习近平代表十八届中央委员会向大会作报告中国共产党第十九次全国代表大会开幕会于10月18日上午9:00在人民大会堂大礼堂举行。习近平代表十八届中央委员会向大会作报告”";
NSMutableAttributedString*rightAttrString = [[NSMutableAttributedStringalloc]initWithString:rightText];
[rightAttrStringsetYy_font:SYSTEMFONT(14)];
YYLabel*leftLabel = [[YYLabelalloc]init];
leftLabel.backgroundColor=KGreenColor;
[self.viewaddSubview:leftLabel];
YYLabel*rightLabel = [[YYLabelalloc]init];
rightLabel.numberOfLines=0;
rightLabel.backgroundColor=KRedColor;
[self.viewaddSubview:rightLabel];
CGFloatleftWidth = [leftTextwidthForFont:leftLabel.font];
leftLabel.left=10;
leftLabel.top=100;
rightLabel.left= leftWidth +20;
rightLabel.top=100;
YYTextLinePositionSimpleModifier*rightModifier = [YYTextLinePositionSimpleModifiernew];
rightModifier.fixedLineHeight=30;
YYTextContainer*rightContainer = [YYTextContainernew];
rightContainer.size=CGSizeMake(self.view.width- leftWidth -30,CGFLOAT_MAX);
rightContainer.linePositionModifier= rightModifier;
YYTextLayout*rightLayout = [YYTextLayoutlayoutWithContainer:rightContainertext:rightAttrString];
rightLabel.size= rightLayout.textBoundingSize;
rightLabel.textLayout= rightLayout;
YYTextLinePositionSimpleModifier*leftModifier = [YYTextLinePositionSimpleModifiernew];
leftModifier.fixedLineHeight=30;
YYTextContainer*leftContainer = [YYTextContainernew];
leftContainer.size=CGSizeMake(leftWidth,CGFLOAT_MAX);
leftContainer.linePositionModifier= leftModifier;
YYTextLayout*leftLayout = [YYTextLayoutlayoutWithContainer:leftContainertext:leftAttrString];
leftLabel.size= leftLayout.textBoundingSize;
leftLabel.textLayout= leftLayout;
leftModifier.fixedLineHeight=30; 这个就是每行的高度