b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

iOSSDK体系架构(5)

电脑杂谈  发布时间:2019-09-03 14:04:30  来源:网络整理

3、右下角的未读消息数提示

当用户停留在会话页面非最下方区域阅读时,此会话收到消息,会在右下角显示未读消息提醒,而不会自动滚动到最下方,当用户点击该提示图标,会滚动到最下方显示最新的消息。

// RCConversationViewController Class
/*!
 当前阅读区域的下方收到消息时,是否在会话页面的右下角提示下方存在未读消息
 @discussion 默认值为NO。
 开启该提示功能之后,当会话页面滑动到最下方时,此会话中收到消息会自动更新;
 当用户停留在上方某个区域阅读时,此会话收到消息,会在右下角显示未读消息提示,而不会自动滚动到最下方,
 用户点击该提醒按钮,会滚动到最下方。
 */
@property(nonatomic, assign) BOOL enableNewComingMessageIcon;

对于常用的IM聊天情景,聊天界面最下方提供了输入软件栏,集成了文本输入、语音录音、表情、扩展输入(照片、定位、实时音视频等)、菜单项(在公众服务会话中使用),开箱即用。

image

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

ifly格式如何打开_ifly格式_ifly文件用什么打开

/*!
 聊天界面下方的输入工具栏
 */
@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中的内容即可。

image

扩展表情区域

扩展区域可以开发者自己添加,示例代码请参考添加自定义表情。

您可以借助聊天图标的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

    • 丁邦效
      丁邦效

      先戳你一下

    • 张航星
      张航星

      就算你唱歌好听那你也是一个没人知道的路人

    热点图片
    拼命载入中...