自定义表情键盘
去年的时候,项目中有使用到表情键盘,接手过来的时候,整个表情键盘和项目耦合度太高了,想做一点扩展都让人头疼,所以,就抽时间封装了一个一表情键盘。最近在重构项目的时候,看到表情键盘这里,输入框,没有显示自定表情,就做了一下处理,让输入框可以显示表情。
配置资源文件
资源文件我是放在了 XTEmojiResources
文件中,其中:
emojiPackages
是配置有几个Tab
,以及Tab
的项目信息。toolbarImage
是一些按钮的图片lionface
和yctface
是表情图片,其中的info.plist
文件中的内容可以根据XTEmojiInfoModel
中添加,但emojiName
和emojiDesc
必须有。其他的按照实际需求做扩展。

如何使用
本来是想做成 Framework
的。后面就直接把源码放 Demo
里面了。使用的时候,把这几个目录里面文件全部拖动到你自己的项目里面,或者你自己去制作一个 Framework
。具体的实现方式,源码里面都有注释。

接入代码参考
按照 Demo
里面 ViewController
里的代码使用。
// 表情键盘
XTEmojiInputView *inputView = [[XTEmojiInputView alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height - 258, self.view.frame.size.width, 258)];
self.inputView = inputView;
__weak ViewController *weakSelf = self;
self.inputView.emojiInputResultBlock = ^(XTEmojiInfoModel *infoModel, BOOL isDeleteEmoji) {
__strong typeof(weakSelf)strongSelf = weakSelf;
if (isDeleteEmoji) {
// 删除表情
if (strongSelf.textView != nil) {
[strongSelf.textView deleteBackward];
}
} else {
// 添加表情
[strongSelf.textView insertEmojiWithModel:infoModel];
}
};
self.inputView.emojiToolBarSendBlock = ^{
__strong typeof(weakSelf)strongSelf = weakSelf;
[strongSelf.textView changeEmojiAttributedStringToNormalString];
NSLog(@"\n\n 11111点击发送文本:\n%@\n\n",strongSelf.textView.finalText);
};
Demo 地址
Demo
的具体地址在我的 GitHub。有问题,欢迎大家提出。