如何实现自定义表情?

1、继承实现协议 RCEmoticonTabSource

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

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

RCDCustomerEmoticonTab.h

@interface RCDCustomerEmoticonTab : NSObject <RCEmoticonTabSource>

/*!

表情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文件的文件夹添加进来

Android 经典笔记七 全局弹窗Dialog

目录介绍1.全局弹窗分析2.全局弹窗必要条件3.全局弹窗实现方式3.1.利用系统弹出dialog3.2.获取WindowManager,直接添加view3.3.在服务里,获取栈顶的Activity,弹窗4.Dialog实现全局Loading加载框4.1.自定义Loading类4.2.给自定义的

JS必知的6种继承方式

JS作为面向对象的弱类型语言,继承也是其非常强大的特性之一。那么如何在JS中实现继承呢?让我们拭目以待JS继承的实现方式既然要实现继承,那么首先我们得有一个父类,代码如下:// 父类function Person(name) { // 给构造函数添加了参数  this.name  name;

Core Animation 文档翻译 (第五篇)—构建Layer的层次结构

 <fontface"宋体"color"1c6189"前言</font</br<fontface"宋体"size3在APP中大多数情况下,将Layer和View对象结合使用是Layer最好的使用方式。然而,很多时候我们可能需要通过添加单独的Layer对象,以便增加视图继承层次;当为了提高性能,或为了实现View很难实现

SwiftUI Tips 004:奇妙而强大的修饰符 (modifier)

在SwiftUI中,修饰符的功能类似于CSS,用来在应用布局中定位和配置视图,如修改视图的大小、背景、添加动画、添加手势等等。View协议通过扩展提供了大量的修饰符,它们以协议方法的形式给出,同时提供了默认实现。以我们熟悉的 frame() 为例,来看看它的声明:@available(iOS13.0,OSX10.15,

IOS开发

在SwiftUI中显示模态视图简介这里教大家如何弹出一个简单的模态视图。分别有两个页面,ContentView和GCPresentedView,以下对应简称为A和B。我们要做的是在A视图中点击按钮跳转到B视图,然后再从B视图点击按钮返回到A视图。步骤在A视图中创建按钮和模态视图代码