自定义输入框
环信集成文档提供了聊天会话输入框自定义方法,如下
但是根据官网提供的方法,能显示出效果,但是View事件被某个图层截取了无法传递,通过与环信技术支持沟通,给出的解决方案是修改EaseChatToolbar.h和EaseChatToolbar.m两个文件。不过并未给出事件为什么无法效应的解释。
整个输入栏的UI编写通过- (void)_setupSubviews方法开始的,想做具体的修改通过该方法进行。
比如我们的设计稿如图所示
我们只需要修改-(void)_setupSubviews方法中部分代码,首先我们需要添加一个控件,这里我用的是UIButton控件,当然还有其他方法可以实现。具体添加的代码如下
最重要的是最后两行代码,一定要添加。根据环信封装的UI逻辑分析出来的。其他的控件只需要在-(void)_setupSubviews中找到相关控件做相应的资源替换或者添加相关UI代码。
其中recordButton控制中间语音显示的,moreButton控制更多面板的,faceButton控制表情的。想做修改只需要找到相应的控件做逻辑控制就行。
替换头像和昵称
1:通过自己后台根据用户ID获取用户头像,在聊天页面或者最近联系人界面去请求后台获取相关数据;
在聊天界面的控制器中(chatViewController)添加代理、协议,实现如下图的方法,需要从服务器获取相应的数据,根据message.from来区分不同的角色,把赋值相应的信息。
2.通过扩展消息显示头像,昵称
暂未尝试这种方案 可以借鉴下面相关资料
http://www.imgeek.org/article/825308555
http://www.jianshu.com/p/5f74288b771a
最后附上Demo地址 https://pan.baidu.com/s/1bpsywZd