Demo UI 说明
实现方式
操作面板数据是解析一份 JSON 文件获得的,Demo 中的这份文件名称是
AvatarTPose_panel.json
放在 BeautyDemo/Avatar/
目录。
Json 结构和 UI 面板对应关系:
左侧 item 对应右侧页面一级菜单,clothes 为第一个 icon 选中的内容:
左侧红框 subTabs 对应右侧二级菜单:
左侧 icon 对应的 AvatarData 数据存储在素材下的 resources 文件夹中,右侧展示的是面板的配置数据。两者之间是通过面板数据中的 category 进行关联,SDK 会解析 resources 文件夹中的数据,放入对应的 map 中,map 的 key 是 category 的值,所以在 Demo 中解析完
panel.json
文件后,可通过 SDK 提供的方法获取数据进行关联。可以参考 demo 中的 AvatarResManager 的 getAvatarData 方法,此方法会解析面板文件并和 SDK 返回的属性进行关联。
Demo 重要类说明
路径:
BeautyDemo/Avatar/DataSource/AvatarResManager.m
1. 拷贝 Avatar 素材
/**copy资源到沙盒,因为有下载某单个素材需求,在mainBundle里面的资源文件无法修改,需要拷贝到沙盒,才可以往资源添加文件*/- (void)copyBundleToSanboxIfNeed
2. 获取面板数据
// 获取UI面板数据- (NSArray *)getPanelData:(AvatarGender)gender
3. 保存捏脸形象数据
// 保存捏脸形象数据- (BOOL)saveSelectedAvatarConfigs:(AvatarGender)gender image:(NSData *)image
4.获取保存的捏脸形象数据
//获取保存的全身形象数据- (void)getSavedAvatarConfigs
5. 获取默认的全身形象数据
// 获取默认的全身形象数据- (NSString *)getDefaultAvatarConfigs:(AvatarGender)gender