手机直播app制作时怎样在iOS中实现富文本

我们在观看直播时,经常会看到有的主播房间名字下面带有话题小标签,比如#搞笑的一天##悲伤的瞬间##双十一买了点啥#等,虽然看起来是很小的一个功能,但是在进行手机直播app制作时,在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;

以上就是进行手机直播app制作时在iOS中实现富文本的大概流程,可见直播app中小到不起眼的功能也是需要代码实现的。如果想要了解更多关于手机直播app制作的内容,可继续关注。
声明:本文由作者原创,转载须备注文章来源与作者。

发布了119 篇原创文章 · 获赞 27 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/yun_bao_2144899870/article/details/103143954
今日推荐