1. 如何删除chatToolbar上 语音录制 或表情等按钮
image.png

在setChatToolbar方法中 chatToolbar.inputViewLeftItems 和right数组进行操作即可删除
2. 如何删除底部chatBarMoreView的位置 语音电话等按钮

注意: 这个索引是实时变得 比如你删除了第一个 那么第二个item的索引就变成了第一个
如何实现头像昵称
使用ext扩展消息来实现
首先在发送消息基于EaseMessageViewController的界面实现以下代理
/*!
@method
@brief 将EMMessage类型转换为符合<IMessageModel>协议的类型
@discussion 将EMMessage类型转换为符合<IMessageModel>协议的类型,设置用户信息,消息显示用户昵称和头像
@param viewController 当前消息视图
@param EMMessage 聊天消息对象类型
@result 返回<IMessageModel>协议的类型
*/
//具体样例:
- (id<IMessageModel>)messageViewController:(EaseMessageViewController *)viewController
modelForMessage:(EMMessage *)message
{
//用户可以根据自己的用户体系,根据message设置用户昵称和头像
id<IMessageModel> model = nil;
model = [[EaseMessageModel alloc] initWithMessage:message];
model.avatarImage = [UIImage imageNamed:@"EaseUIResource.bundle/user"];//默认头像
是自己发送 从本地获取图片 即登录的时候保存
if (model.isSender)
{
model.avatarURLPath = @"";//头像网络地址
model.nickname = @"天涯";//用户昵称
}
else
{
// 对方头像 从自己服务器获取 具体获取方式就是 本地服务器返回的好友列表 也就是通讯录是带好友头像和昵称的 对昵称 手机号头像URL等进行本地数据库保存
model.avatarURLPath = @"";//头像网络地址
model.nickname = @"海角";//用户昵称
}
return model;
}
pragma mark - 设置昵称
EaseConversationModel *model = [[EaseConversationModel alloc] initWithConversation:conversation];
if (model.conversation.type == EMConversationTypeChat) {
model.title = @"海天";
} else if (model.conversation.type == EMConversationTypeGroupChat) {
NSString *imageName = @"groupPublicHeader";
if (![conversation.ext objectForKey:@"subject"])
{
NSArray *groupArray = [[EMClient sharedClient].groupManager getJoinedGroups];
for (EMGroup *group in groupArray) {
if ([group.groupId isEqualToString:conversation.conversationId]) {
NSMutableDictionary *ext = [NSMutableDictionary dictionaryWithDictionary:conversation.ext];
[ext setObject:group.subject forKey:@"subject"];
[ext setObject:[NSNumber numberWithBool:group.isPublic] forKey:@"isPublic"];
conversation.ext = ext;
break;
}
}
}
NSDictionary *ext = conversation.ext;
model.title = [ext objectForKey:@"subject"];
imageName = [[ext objectForKey:@"isPublic"] boolValue] ? @"groupPublicHeader" : @"groupPrivateHeader";
model.avatarImage = [UIImage imageNamed:imageName];
}
return model;
}
在消息列表 对最后一条消息进行匹配 如果最后一条消息是自己发的 说明你已经发过 直接从数据库匹配即可 如果是对方发的 直接读取扩展消息的昵称和头像即可
网友评论