ios | 利用YYLabel在可换行的文本前加带背景色的标签

类似效果图


YYLabel确实是一个很有用的控件

//外部使用可直接调用此方法,简单方便

subStr即前面带背景色标签的文本

title即标签之后的主标题

titleFont 主标题的字号

+ (NSMutableAttributedString*)setPartialTextFillColorWithSubStr:(NSString*)subStr title:(NSString*)title titleFont:(CGFloat)titleFont{

    NSMutableParagraphStyle *paragraph = [[NSMutableParagraphStyle alloc]init];

    paragraph.alignment=NSTextAlignmentLeft;

    paragraph.lineSpacing=3;

    paragraph.hyphenationFactor=1.0;

    NSMutableAttributedString*attrStr = [selfsetString:titleattributes:@{NSFontAttributeName:[UIFontsystemFontOfSize:titleFont],NSParagraphStyleAttributeName: paragraph}subStr:subStrfillColor:goldenYellowinsets:UIEdgeInsetsMake(-1, -2, -1, -2)subStrColor:CenColorsubStrFontSize:titleFont-2];

    returnattrStr;

}


+ (NSMutableAttributedString*)setString:(NSString*)string attributes:(nullableNSDictionary *)attributes subStr:(NSString*)subStr fillColor:(NSInteger)fillColor insets:(UIEdgeInsets)insets subStrColor:(NSInteger)subStrColor subStrFontSize:(CGFloat)subStrFontSize{

//将标签文本和主标题文本拼接

    NSString*itemName = [NSStringstringWithFormat:@" %@ %@",subStr,string];

    NSMutableAttributedString *titleAttrStr = [[NSMutableAttributedString alloc] initWithString:itemName attributes:attributes];

//设置标签的背景色

   YYTextBorder *border = [YYTextBorder new];

    border.fillColor= [UIColorcolorWithHex:fillColor];

    border.insets= insets;

   NSIntegerlength = subStr.length+1;

    [titleAttrStryy_setTextBackgroundBorder:borderrange:NSMakeRange(0, length)];

//设置标签的文本颜色

    [titleAttrStryy_setColor:[UIColorcolorWithHex:subStrColor]range:NSMakeRange(0, length)];

//设置标签文本的字号

    [titleAttrStryy_setFont:[UIFontsystemFontOfSize:subStrFontSize]range:NSMakeRange(0, length)];

    returntitleAttrStr;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容