如何实现自定义表情?

融云IM即时通讯
• 阅读 310

1、继承实现协议 RCEmoticonTabSource

2、在实现的代理方法 loadEmoticonView 返回 View ,(返回的以下图中红框区域,里面的视图及逻辑需要自己来添加实现) 3、在会话页面 viewdidLoad 里添加表情包

示例代码(Demo 源码 2中的类 RCDCustomerEmoticonTab ):

RCDCustomerEmoticonTab.h

@interface RCDCustomerEmoticonTab : NSObject

/*!

表情tab的标识符

@return 表情tab的标识符,请勿重复

*/

@property(nonatomic, strong) NSString *identify;

/*!

表情tab的图标

@return 表情tab的图标

*/

@property(nonatomic, strong) UIImage *image;

/*!

表情tab的页数

@return 表情tab的页数

*/

@property(nonatomic, assign) int pageCount;

/*!

表情tab的index页的表情View

@return 表情tab的index页的表情View

@discussion 返回的 view 大小必须等于 contentViewSize (宽度 = 屏幕宽度,高度 =

186)

*/

- (UIView *)loadEmoticonView:(NSString *)identify index:(int)index;

@end

RCDCustomerEmoticonTab.m

@implementation RCDCustomerEmoticonTab

  • (UIView *)loadEmoticonView:(NSString *)identify index:(int)index {

UIView *view = [[UIView alloc]

initWithFrame:CGRectMake(0, 0, [[UIScreen mainScreen] bounds].size.width, 186)];

view11.backgroundColor = [UIColor blackColor];

switch (index) {

case 1:

view.backgroundColor = [UIColor yellowColor];

break;

case 2:

view.backgroundColor = [UIColor redColor];

break;

case 3:

view.backgroundColor = [UIColor greenColor];

break;

case 4:

view.backgroundColor = [UIColor grayColor];

break;

default:

break;

}

return view;

}

@end 在会话页面 viewDidLoad 添加自定义表情

UIImage *icon = [RCKitUtility imageNamed:@"emoji_btn_normal"

ofBundle:@"RongCloud.bundle"];

RCDCustomerEmoticonTab *emoticonTab1 = [RCDCustomerEmoticonTab new];

emoticonTab1.identify = @"1";

emoticonTab1.image = icon;

emoticonTab1.pageCount = 2;

[self.chatSessionInputBarControl.emojiBoardView addEmojiTab:emoticonTab1]; 详情查看:https://www.rongcloud.cn/?utm_source=SEO&utm_term=helloworld

点赞
收藏
评论区
推荐文章
皕杰报表之自定义函数
当设计器里的函数不能满足你的需求时,你需要自定义一些函数来来满足你的需求。设计器上1.选择【工具栏】【窗口】【首选项】【通用配置】【类加载配置】,在【自定义接口实现类配置】中添加自定义函数实现类,添加方式有两种:一是将编译好的.class文件打成jar包,点击【添加JAR】,将jar包导入;二是点击【添加文件夹】,将包含.class文件的文件夹添加进来
Stella981 Stella981
3年前
Android 经典笔记七 全局弹窗Dialog
目录介绍1.全局弹窗分析2.全局弹窗必要条件3.全局弹窗实现方式3.1.利用系统弹出dialog3.2.获取WindowManager,直接添加view3.3.在服务里,获取栈顶的Activity,弹窗4.Dialog实现全局Loading加载框4.1.自定义Loading类4.2.给自定义的
Wesley13 Wesley13
3年前
JS必知的6种继承方式
JS作为面向对象的弱类型语言,继承也是其非常强大的特性之一。那么如何在JS中实现继承呢?让我们拭目以待JS继承的实现方式既然要实现继承,那么首先我们得有一个父类,代码如下:// 父类function Person(name) { // 给构造函数添加了参数  this.name  name;
Stella981 Stella981
3年前
Netty RPC的简易DEMO
这个是rpc远程调用的简单demo:Consumer通过rpc远程调用Provider的服务方法sayHelloWorld(Stringmsg),然后Provider返回""HelloWorld"给Consumer。这里采用netty来实现远程通信实现rpc调用,消费者通过代理来进行远程调用远程服务。本文涉及的知识点有代理模式,jd
Stella981 Stella981
3年前
Core Animation 文档翻译 (第五篇)—构建Layer的层次结构
 <fontface"宋体"color"1c6189"前言</font</br<fontface"宋体"size3在APP中大多数情况下,将Layer和View对象结合使用是Layer最好的使用方式。然而,很多时候我们可能需要通过添加单独的Layer对象,以便增加视图继承层次;当为了提高性能,或为了实现View很难实现
Easter79 Easter79
3年前
SwiftUI Tips 004:奇妙而强大的修饰符 (modifier)
在SwiftUI中,修饰符的功能类似于CSS,用来在应用布局中定位和配置视图,如修改视图的大小、背景、添加动画、添加手势等等。View协议通过扩展提供了大量的修饰符,它们以协议方法的形式给出,同时提供了默认实现。以我们熟悉的 frame() 为例,来看看它的声明:@available(iOS13.0,OSX10.15,
Wesley13 Wesley13
3年前
IOS开发
在SwiftUI中显示模态视图简介这里教大家如何弹出一个简单的模态视图。分别有两个页面,ContentView和GCPresentedView,以下对应简称为A和B。我们要做的是在A视图中点击按钮跳转到B视图,然后再从B视图点击按钮返回到A视图。步骤在A视图中创建按钮和模态视图代码
Stella981 Stella981
3年前
SpringAOP动态代理技术自动生成代理类原理演示
//如下是自动生成代理类的逻辑演示:为了解耦合将类的方法单纯在代理类里调用;额外功能都在代理类里实现代理类的存在的问题就是开发代码量大代码冗余.为了解决这类问题使用AOP动态代理自动生成代理类publicinterfaceMan{publicvoidalive();//提供一个接口}public
Wesley13 Wesley13
3年前
Java 实现线程的方式有几种方式?带有返回值的线程怎么实现?
Java实现线程的方式有几种方式?带有返回值的线程怎么实现?在Java线程开发中,有几种方法开启线程?假如需要得到线程返回的信息怎么办?可以实现吗?凯哥将通过源码和大家一起分享下线程怎么将返回值带回来的。一:无返回值类型的1:继承Thread类2:实现Runnable接口这两种是大家常用的,代码demo就截图吧。
Wesley13 Wesley13
3年前
.NET Core ActionFilterAttribute自定义响应输出
在.NetCore中使用ActionFilterAttribute重写OnResultExecuting来实现对返回接口自定义输出:1、创建 ResultFilter,继承自 ActionFilterAttributepublicclassResultFilter:ActionFilterAttribute{
融云IM即时通讯
融云IM即时通讯
Lv1
北京云中融信网络科技有限公司(简称“融云”),是全球互联网通信云服务领创品牌。2014 年由创下亿级日活神话的“飞信”核心团队组建而成,依托沉淀近 20 年的领先技术基因,开创性地将通信技术封装为 SDK 提供给开发者和企业用户,大幅降低了行业对通信功能开发的难度和成本。 自成立以来,融云专注于向开发者和企业提供专业、简单、稳定的即时通讯和实时音视频 PaaS 服务。凭借产品、技术、服务等多方面优势,融云收获了超 80 万开发者和 2200+ 国家政府机关、企事业单位的青睐,支撑起 155 万+ 应用的通信需求,覆盖社交、娱乐、游戏、教育、电商、医疗等各行业场景,并打造出一系列中企出海最佳实践案例。 在全球范围内,融云构建了一张覆盖 245 个国家及地区的通信云网络,设立了多个海外数据中心以及数千加速节点,稳定互联,确保跨地域通信体验更加流畅。基于客户业务需求,融云可提供公有云、私有云、混合云等多种部署模式。 权威咨询机构“艾瑞咨询”数据报告显示,融云即时通讯云市场份额已连续多年稳居第一。
文章
184
粉丝
0
获赞
0