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 字符串大小比较
    安卓应用如何赚钱
    报错找不到jquery-1.10.2.min.map解决办法
    android 中 webview 怎么用 localStorage?
    HTML5 本地存储
    js获取url参数值
    java调用webservice
    点圆的关系---1
    数学建模入门书籍介绍
    北京秋日风景-最大的银杏林海景色
  • 原文地址:https://www.cnblogs.com/damonWq/p/5342767.html
Copyright © 2011-2022 走看看