CDDGroupAvatar版本更新-1.5.2

前言:

去年我开源一个群头像框架CDDGroupAvatar,在第一个版本上传GitHub之后引发了一个思考🤔。我的框架默认是集成SDWebImage有默认依赖啊,这个问题的处理就这这次版本的更新所要解决核心问题。

1:SDWebImage?可以除去依赖么

用户1说:我的项目没有用SDWebImage,我们用的是YYWebImage那岂不是我用了你写的框架就存在两个图片加载框架,我不喜欢?框架过载了

解决方案:在之前的版本中是存在这个问题,怎么处理框架设计的时候稍微改动一下就可以,我们可以去掉SDWebImageCDDGroupAvatar成为一个纯UI框架,加载交给用户,我们负责根Type生成布局就行。

  • 头文件代码如下
/**
 设置群头像
 @param groupId 群头像id
 @param groupSource 群头像数据源数组
 */
- (void)dc_setNoCacheImageAvatarWithGroupId:(NSString *)groupId Source:(NSArray <UIImage *>*)groupSource;


/**
 设置群头像
 
 @param groupId 群头像id
 @param groupSource 群头像数据源数组
 @param completedBlock <NSString *groupId, UIImage *groupImage, NSArray <UIImage *>*itemImageArray, NSString *cacheId>
 */
- (void)dc_setNoCacheImageAvatarWithGroupId:(NSString *)groupId Source:(NSArray <UIImage *>*)groupSource completed:(GroupImageBlock)completedBlock;

  • 调用案例
[self.ncImageViewW4 dc_setNoCacheImageAvatarWithGroupId:@"avImageViewW4" Source:@[[UIImage imageNamed:@"noCache1"],[UIImage imageNamed:@"noCache2"],[UIImage imageNamed:@"noCache3"],[UIImage imageNamed:@"noCache4"]]];

我们接受图片对象数组来最终生成用户需要的群头像。

搞定!!!!

2:这样就结束了?并没有

用户2说:我们项目里用的就是SDWebImage,你这一更新岂不是让我们多做很多事。
我们喜欢这样的调用

[self.avImageViewW8 dc_setImageAvatarWithGroupId:@"avImageViewW8" Source:_groupNum8];

直接show!!!初版调用请查看

显然网络加载部分不能丢弃,如果可以设计的一步到位用着才舒服。

3:最终结局方案

我们两种方案都提供,我们在框架的设计上提供一个subspec让用户自己去选择。默认网络加载一体的,如果用户想自己管理加载部分的逻辑可以这样。两种集成方案如下

  • pod CDDGroupAvatar/NoCache 无网络依赖纯UI

  • pod CDDGroupAvatar UI+Network

如果是纯代码的话:请到框架目录中查看

image

根据文件夹名拖拽。

这样以上两种需求即可都满足,更多案例和框架源码请下载查看!

地址:

Github : CDDGroupAvatar

推荐阅读更多精彩内容