zoukankan      html  css  js  c++  java
  • 图文混排——用表情代替"[文字]"

    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;

     
  • 相关阅读:
    算法(Java实现)—— KMP算法
    算法(Java实现)—— 动态规划算法
    算法(Java实现)—— 分治算法
    算法(Java实现)—— 二分搜索算法
    JDBC(八)—— 数据库连接池
    JDBC(七)—— Dao层操作
    JDBC(六)—— 数据库事务
    JDBC(五)—— 批量插入数据
    JDBC(四)—— Blob类型操作
    Myeclipse10.X安装findbugs插件记录
  • 原文地址:https://www.cnblogs.com/damonWq/p/5342767.html
Copyright © 2011-2022 走看看