IOS-70-emoji表情键盘(防微信,实现自定义文字、表情相互转化,附demo)

1、项目社交部分需要加上表情键盘功能,所以写了一个demo给大家分享下:实现了类似微信的文字、表情相互转化,可自定义文字标示库 样式 : [大笑]
2、见效果图:
这里写图片描述

3、主要部分是文字、表情的互相转化,主要运用了NSString自带的枚举方法,代码如下:

// 检索字符串中的表情,显示到label上
- (void)showEmoji:(NSString *)content{

    __block NSString *showStr;
    __weak typeof(self)  weakself = self;

    showStr = content;

    // 表情文字左右方括号标示
    NSString *leftParenthesis   =  @"[";
    NSString *rightparenthesis  =  @"]";
    // 枚举出所有该字符串中所有表情
    [showStr enumerateSubstringsInRange:NSMakeRange(0, showStr.length) options:NSStringEnumerationByComposedCharacterSequences usingBlock:^(NSString * _Nullable substring, NSRange substringRange, NSRange enclosingRange, BOOL * _Nonnull stop) {

        if ([showStr containsString:leftParenthesis] && [showStr containsString:rightparenthesis]) {
            NSRange leftRange  = [showStr rangeOfString:leftParenthesis options:NSCaseInsensitiveSearch];
            NSRange rightRange = [showStr rangeOfString:rightparenthesis options:NSCaseInsensitiveSearch];
            if (rightRange.location>leftRange.location) {
                NSString *emojiStr = [showStr substringWithRange:NSMakeRange(leftRange.location, rightRange.location-leftRange.location+1)];
                // 判断是哪一个表情字段  从而匹配相应的表情
                NSArray *emojiFlagArr = weakself.keyboard.emojiFlagArr;
                NSArray *emojiArr     = [STEmoji teldEmojiArr];
                for (int i=0; i<emojiFlagArr.count; i++) {
                    if ([emojiStr isEqualToString:emojiFlagArr[i]]) {
                        showStr =[showStr stringByReplacingOccurrencesOfString:emojiStr withString:emojiArr[i]];
//                        showStr = str;
                        break;
                    }
                }
            }
        }
    }];


    _label.text = showStr;
}

4.可在STEmojiKeyboard.m文件里更改自己的表情标示符、注意:要与emoji.json文件里的图片对应起来:
这里写图片描述

demo下载地址:http://download.csdn.net/detail/iot_li/9609558

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IOT_Elon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值