[置顶] iOS-OC-自定义融云会话列表(自定义cell)

我在我的一篇博文里面也详细介绍了自定义融云的会话列表,没看过的小伙伴可以点击进去看看;

[置顶] iOS-OC-自定义融云会话列表(自定义cell)


这里面我主要介绍在我们自定义的会话列表里面如何设置群组cell的头像和昵称,即ConversationType_GROUP类型的会话,像其他的讨论组或者聊天室这里就不说明了,照着胡咯画瓢,很多小伙伴在看融云官网的api文档或者视频的时候,里面有详细介绍设置个人信息的头像和昵称,但是当我们的会话列表里面有群组的时候,发现那个设置方法是不能够的,其实设置群组是单独的方法。

代理

先要设置群组的信息代理RCIMGroupInfoDataSource

[[RCIM sharedRCIM] setGroupInfoDataSource:self];

会话类型

设置你想要显示的会话类型,这里面当然包括ConversationType_GROUP

//设置需要显示哪些类型的会话
    [self setDisplayConversationTypes:@[@(ConversationType_PRIVATE),@(ConversationType_DISCUSSION),@(ConversationType_CHATROOM),@(ConversationType_GROUP),@(ConversationType_APPSERVICE),@(ConversationType_SYSTEM)]];

代理方法

/*!
 群组信息提供者
 
 @discussion SDK需要通过您实现的群组信息提供者,获取群组信息并显示。
 */
@protocol RCIMGroupInfoDataSource <NSObject>

/*!
 获取群组信息
 
 @param groupId     群组ID
 @param completion  获取群组信息完成之后需要执行的Block [groupInfo:该群组ID对应的群组信息]
 
 @discussion SDK通过此方法获取用户信息并显示,请在completion的block中返回该用户ID对应的用户信息。
 在您设置了用户信息提供者之后,SDK在需要显示用户信息的时候,会调用此方法,向您请求用户信息用于显示。
 */
- (void)getGroupInfoWithGroupId:(NSString *)groupId
                     completion:(void (^)(RCGroup *groupInfo))completion;

@end

群组的数据类型是RCGroup,我这里面举了一个列子:

- (void)getGroupInfoWithGroupId:(NSString *)groupId completion:(void (^)(RCGroup *))completion{
    if([groupId isEqualToString:@"123456"]){
        RCGroup *group = [[RCGroup alloc]init];
        group.groupId = groupId;
        group.groupName = @"张福杰的群";
        group.portraitUri = @"http://7xpx8n.com1.z0.glb.clouddn.com/logo256.png";
        return completion(group);
    }
}
我这里判断群组ID(groupId)如果是123456的话就给他设置groupId、groupName和portraitUri。

当然真正做的时候这里面要复杂的多,我们肯定有一个查询接口,通过这个接口我们把群组的groupId传过去,来获取groupName和portraitUri,这个数据我们肯定也要缓存到本地一下,具体设计看你的需求了。

示例效果




猜你喜欢

转载自blog.csdn.net/u014220518/article/details/73850660