• 图文混排——用表情代替 “[文字]”显示


    1.简单设置带属性的字符串

        定义一个NSMutableAttributedString带属性的字符串

        NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:@"hello[1_1] world![哈哈][微笑]"];

        设置属性

        [str setAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:60], NSForegroundColorAttributeName:[UIColor redColor], NSBackgroundColorAttributeName:[UIColor greenColor], NSUnderlineColorAttributeName:[UIColor blueColor], NSUnderlineStyleAttributeName:@(NSUnderlineStyleDouble)} range:NSMakeRange(0, 5)];

        显示

        _label.attributedText = str;

    2. 用表情代替带【】的文字(qq会话,微信会话)

        定义正则表达式

        NSString *pattern = @"\[[u4E00-u9FA5]+\]";

        NSRegularExpression *regular = [NSRegularExpression regularExpressionWithPattern:pattern options:NSRegularExpressionCaseInsensitive error:nil];

        

        NSString *text = @"hello[1_1] world![哈哈]";

        得到符合表达式的数组NSTextCheckingResult类型的

        NSArray *resultArray = [regular matchesInString:text options:0 range:NSMakeRange(0, text.length)];

        

        定义一个带附件的字符串

        NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc] initWithString:text];

     

        for (NSTextCheckingResult *result in resultArray) {

            位置

            NSRange range = result.range;

            得到附件

            NSTextAttachment *attach = [[NSTextAttachment alloc] init];

            设置附件的图片

            attach.image = [UIImage imageNamed:@"d_guzhang"];

            得到附件生成的字符串

            NSAttributedString *imageStr = [NSAttributedString attributedStringWithAttachment:attach];

            把文字替换成表情

            [attStr replaceCharactersInRange:range withAttributedString:imageStr];

        }

        _label.attributedText = attStr;

  • 相关阅读:
    7、cad图纸打印
    对账
    练习10—去掉图片文字
    6、cad里面如何快速将图纸的线条全部变成黑色
    5、cad如何快速选中图纸上所有文字
    4、如何修改cad的背景色为白色
    练习九—快速修饰面部光影
    iOS alloc&init探索
    export default / export const
    Vue2.0+组件库总结
  • 原文地址:https://www.cnblogs.com/huoran1120/p/5232302.html
Copyright © 2020-2023  润新知