最近一直在做与IM相关的项目,所以就遇到了群聊头像九宫格的问题。
具体思路:
1:创建ContentView:vi用来显示九宫格头像布局。
2:循环加载头像并添加到vi布局中。
3:在所有头像全部加载完成后开启画布获取九宫格头像排布Image,返回显示上传到服务器一劳永逸。(注: 群成员发生改变时需要注意根据自己的需求判断是否更新九宫格图片)
class func creatGroupAvatar(avatars: [String], finished: @escaping (_ data: UIImage?) -> ()) {
let viewWidth: CGFloat = 60
let avatarCount = avatars.count > 4 ? 4:avatars.count
let avatarWidth = viewWidth * 0.5 * 0.85
let space_twoAvatar = (viewWidth - avatarWidth * 2) / 3 //一行两个头像的间距
let space_avatar = (viewWidth - avatarWidth) * 0.5 //一行只有一个头像的间距
var x = avatarCount % 2 ==