在进行直播系统开发时,有时候需要实现#标签#功能,虽然只是一个小功能,但是想要在iOS系统中通过富文本的形式实现却并没有那么简单。接下来就为各位简单分享下,如何在直播系统中实现IOS话题标签功能:
场景一:
如上图中的“新”、“热”标签,在这种情况下我们就不好使用图片了。
NSString *flagStr = minstr([flagDic valueForKey:@"name"]);
NSString *flagColStr = minstr([flagDic valueForKey:@"colour"]);
UIColor *flagBgCol = RGB_COLOR(flagColStr, 1);
NSMutableParagraphStyle *paragraph = [[NSMutableParagraphStyle alloc]init];
paragraph.alignment = NSTextAlignmentCenter;
paragraph.lineSpacing = 3;
paragraph.hyphenationFactor = 1.0;
NSString*itemName = [NSString stringWithFormat:@"%@ %@",titleStr,flagStr];
NSMutableAttributedString *titleAttrStr = [[NSMutableAttributedString alloc] initWithString:itemName attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:tFont],NSParagraphStyleAttributeName: paragraph,NSForegroundColorAttributeName:UIColor.whiteColor}];
//设置标签的背景色
YYTextBorder *border = [YYTextBorder new];
border.fillColor= flagBgCol;
//调整Insets更改背景显示位置
border.insets= UIEdgeInsetsMake(-4, -2, -1, -2);
border.cornerRadius = 3;
[titleAttrStr yy_setTextBackgroundBorder:border range:NSMakeRange(titleStr.length+1, flagStr.length)];
//设置标签的文本颜色
[titleAttrStr yy_setColor:[UIColor whiteColor] range:NSMakeRange(titleStr.length+1, flagStr.length)];
//设置标签文本的字号
[titleAttrStr yy_setFont:[UIFont systemFontOfSize:(tFont-4)]range:NSMakeRange(titleStr.length+1, flagStr.length)];
//小字号偏移
[titleAttrStr addAttribute:NSBaselineOffsetAttributeName value:@(0.66*4) range:NSMakeRange(titleStr.length+1, flagStr.length)];
场景二:
WeakSelf;
NSMutableAttributedString *text = [[NSMutableAttributedString alloc] initWithString:@"...查看更多》"];
YYTextHighlight *hi = [YYTextHighlight new];
[hi setColor:[UIColor whiteColor]];
hi.tapAction = ^(UIView *containerView,NSAttributedString *text,NSRange range, CGRect rect) {
//
MoreSingnatureVC *moreVC = [[MoreSingnatureVC alloc]init];
moreVC.signatureStr = weakSelf.headerV.signatureL.text;
moreVC.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:moreVC animated:YES];
};
[text yy_setColor:RGB_COLOR(@"#969696", 1) range:[text.string rangeOfString:@"..."]];
[text yy_setColor:[UIColor whiteColor] range:[text.string rangeOfString:@"查看更多》"]];
[text yy_setTextHighlight: hi range:[text.string rangeOfString:@"...查看更多》"]];
text.yy_font = SYS_Font(14);
YYLabel *seeMore = [YYLabel new];
seeMore.attributedText = text;
[seeMore sizeToFit];
NSAttributedString *truncationToken = [NSAttributedString yy_attachmentStringWithContent:seeMore contentMode:UIViewContentModeCenter attachmentSize: text.size alignToFont:text.yy_font alignment:YYTextVerticalAlignmentCenter];
_headerV.signatureL.truncationToken = truncationToken;
以上就是关于直播系统中实现IOS话题标签功能的教程,虽然功能很小,甚至有些不起眼,但也是需要代码实现的。这串直播系统代码就放送给大家了。
声明:本文由 驱动号作者:云豹直播系统 原创,转载须备注作者。
评论 {{userinfo.comments}}
{{child.content}}
{{question.question}}
提交