3、右下角的未读消息数提示
当用户停留在会话页面非最下方区域阅读时,此会话收到消息,会在右下角显示未读消息提醒,而不会自动滚动到最下方,当用户点击该提示图标,会滚动到最下方显示最新的消息。
// RCConversationViewController Class
/*!
当前阅读区域的下方收到消息时,是否在会话页面的右下角提示下方存在未读消息
@discussion 默认值为NO。
开启该提示功能之后,当会话页面滑动到最下方时,此会话中收到消息会自动更新;
当用户停留在上方某个区域阅读时,此会话收到消息,会在右下角显示未读消息提示,而不会自动滚动到最下方,
用户点击该提醒按钮,会滚动到最下方。
*/
@property(nonatomic, assign) BOOL enableNewComingMessageIcon;
对于常用的IM聊天情景,聊天界面最下方提供了输入软件栏,集成了文本输入、语音录音、表情、扩展输入(照片、定位、实时音视频等)、菜单项(在公众服务会话中使用),开箱即用。

会话页面键入框软件栏控件RCChatSessionInputBarControl作为页面的属性开放起来,可以借助以上属性。

/*!
聊天界面下方的输入工具栏
*/
@property(nonatomic, strong) RCChatSessionInputBarControl *chatSessionInputBarControl;
/*!
输入框的默认输入模式
@discussion 默认值为RCChatSessionInputBarInputText,即文本输入模式。
*/
@property(nonatomic) RCChatSessionInputBarInputType defaultInputType;
默认输入风格RCChatSessionInputBarInputType类型如下:
/*!
输入工具栏的输入模式
*/
typedef NS_ENUM(NSInteger, RCChatSessionInputBarInputType) {
/*!
文本输入模式
*/
RCChatSessionInputBarInputText = 0,
/*!
语音输入模式
*/
RCChatSessionInputBarInputVoice = 1,
/*!
扩展输入模式
*/
RCChatSessionInputBarInputExtention = 2
};
您也可以定制开启聊天图标时显示的默认输入方式。继承会话页面RCConversationViewController新建会话页面,然后在页面的viewWillAppear中设置页面的defaultInputType属性。
示例代码:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
//默认输入类型为语音,这里修改为默认显示加号区域
self.defaultInputType = RCChatSessionInputBarInputExtention;
}
输入软件栏默认提供了多种显示布局方式,您可以按需定制。您可以在聊天图标RCConversationViewController的viewDidLoad之后修改,改变输入软件栏的样式,示例代码:
[self.chatSessionInputBarControl setInputBarType:RCChatSessionInputBarControlDefaultType style:RC_CHAT_INPUT_BAR_STYLE_CONTAINER];
/*!
输入工具栏的菜单类型
*/
typedef NS_ENUM(NSInteger, RCChatSessionInputBarControlType) {
/*!
默认类型(非公众服务会话)
*/
RCChatSessionInputBarControlDefaultType = 0,
/*!
公众服务(公众服务会话)
*/
RCChatSessionInputBarControlPubType = 1,
/*!
客服机器人(客服会话)
*/
RCChatSessionInputBarControlCSRobotType = 2,
/*!
客服机器人(客服会话)
*/
RCChatSessionInputBarControlNoAvailableType = 3
};
注意:RCChatSessionInputBarControlType是根据会话类型来修改的,不要轻易设置。
style风格枚举组合模式
RC_CHAT_INPUT_BAR_STYLE_SWITCH_CONTAINER_EXTENTION
语音/文本切换功能+内容输入功能+扩展功能
RC_CHAT_INPUT_BAR_STYLE_EXTENTION_CONTAINER_SWITCH
扩展功能+内容输入功能+语音/文本切换功能
RC_CHAT_INPUT_BAR_STYLE_CONTAINER_SWITCH_EXTENTION
内容输入功能+语音/文本切换功能+扩展功能
RC_CHAT_INPUT_BAR_STYLE_CONTAINER_EXTENTION_SWITCH
内容输入功能+扩展功能+语音/文本切换功能
RC_CHAT_INPUT_BAR_STYLE_SWITCH_CONTAINER
语音/文本切换功能+内容输入功能
RC_CHAT_INPUT_BAR_STYLE_CONTAINER_SWITCH
内容输入功能+语音/文本切换功能
RC_CHAT_INPUT_BAR_STYLE_EXTENTION_CONTAINER
扩展功能+内容输入功能
RC_CHAT_INPUT_BAR_STYLE_CONTAINER_EXTENTION
内容输入功能+扩展功能
RC_CHAT_INPUT_BAR_STYLE_CONTAINER
内容输入功能
表情区域分为默认的Emoji表情和扩展表情
输入框工具栏控件RCChatSessionInputBarControl里面继承了表情区域控件
@property(nonatomic, strong) RCEmojiBoardView *emojiBoardView;
表情您即使想定制表情的内容,可以直接设置Emoji.plist中的内容即可。

扩展表情区域
扩展区域可以开发者自己添加,示例代码请参考添加自定义表情。
您可以借助聊天图标的pluginBoardView属性,在viewDidLoad中自定义扩展输入中的内容,增加、移除、修改扩展的Item(注意:SDK默认的扩展项的唯一标识符为1XXX,我们建议您在自定义扩展用途时不要选择1XXX,以免与SDK预留的扩充项唯一标识符重复。)。
pluginBoardView class
/*!
向扩展功能板中插入扩展项
@param image 扩展项的展示图片
@param title 扩展项的展示标题
@param index 需要添加到的索引值
@param tag 扩展项的唯一标示符
@discussion 您以在RCConversationViewController的viewdidload后,添加自定义的扩展项。
SDK默认的扩展项的唯一标示符为1XXX,我们建议您在自定义扩展功能时不要选用1XXX,以免与SDK预留的扩展项唯一标示符重复。
*/
- (void)insertItemWithImage:(UIImage*)image title:(NSString*)title atIndex:(NSInteger)index tag:(NSInteger)tag;
/*!
添加扩展项到扩展功能板,并在显示为最后一项
@param image 扩展项的展示图片
@param title 扩展项的展示标题
@param tag 扩展项的唯一标示符
@discussion 您以在RCConversationViewController的viewdidload后,添加自定义的扩展项。
SDK默认的扩展项的唯一标示符为1XXX,我们建议您在自定义扩展功能时不要选用1XXX,以免与SDK预留的扩展项唯一标示符重复。
*/
-(void)insertItemWithImage:(UIImage*)image title:(NSString*)title tag:(NSInteger)tag;
/*!
更新指定扩展项
@param index 扩展项的索引值
@param image 扩展项的展示图片
@param title 扩展项的展示标题
*/
-(void)updateItemAtIndex:(NSInteger)index image:(UIImage*)image title:(NSString*)title;
/*!
更新指定扩展项
@param tag 扩展项的唯一标示符
@param image 扩展项的展示图片
@param title 扩展项的展示标题
*/
-(void)updateItemWithTag:(NSInteger)tag image:(UIImage*)image title:(NSString*)title;
/*!
删除扩展功能板中的指定扩展项
@param index 指定扩展项的索引值
*/
- (void)removeItemAtIndex:(NSInteger)index;
/*!
删除扩展功能板中的指定扩展项
@param tag 指定扩展项的唯一标示符
*/
- (void)removeItemWithTag:(NSInteger)tag;
/*!
删除扩展功能板中的所有扩展项
*/
- (void)removeAllItems;
@end
SDK默认的扩展输入Item的Tag定义如下:
// RCConversationViewController class
///输入栏扩展输入的唯一标示
#define PLUGIN_BOARD_ITEM_ALBUM_TAG 1001
#define PLUGIN_BOARD_ITEM_CAMERA_TAG 1002
#define PLUGIN_BOARD_ITEM_LOCATION_TAG 1003
#if RC_VOIP_ENABLE
#define PLUGIN_BOARD_ITEM_VOIP_TAG 1004
#endif
例子代码请参考输入扩展功能板的自定义,添加与移除。
从2.8.2开始加号区域RCPluginBoradView增加属性extensionView,开发者可以控制显示或是隐藏,在单击语音头像等其它按键切换输入方法时会手动隐藏extensionView。
pluginBoardView class
/*!
扩展view ,此视图会覆盖加号区域其他视图,默认隐藏
*/
@property(nonatomic, strong) UIView *extensionView;
比如融云SDK中内置的消息类别,开发者也可以自定义消息。自定义消息的显示,需要完成以上三步:
一、自定义消息并注册消息类别
二、自定义消息cell并注册cell
三、自定义消息的发送
版本说明:
即使您使用的SDK是2.7.1(不包括2.7.1)之前版本,自定义消息参考融云iOSSDK自定义消息类别及展示
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-121563-5.html
先戳你一下
就算你唱歌好听那你也是一个没人知道的路人
苹果5升级到9