重点 (二十六) : 硬件/换肤

一. 硬件信息的获取

  1. 应用场景

例如

QQ空间APP 发说说时, 出现的什么什么型号的手机;

迅雷APP 下载文件时提示剩余空间,已用空间

  1. 实现方案

直接通过第三方工具类(UIDevice的分类), 进行获取对应信息

原因: 自己写起来比较复杂, 很多C语言的东西, 而且没有必要;

  1. 框架完善

框架存在问题: 该第三方框架从2012年就停止更新了,意味着12年之后的手机型号都没有, 需要手动添加, 修改框架

解决方案: 找到对应的实现方法, 使用真机进行测试, 手动新增手机型号

二. 换肤

  1. 换肤的应用场景?

一般应用在某些APP , 在节假日更换主题, 或者切换白天或者夜间模式时使用.

  1. 换肤的实现方案

  2. 方案1

  3. 将图片以及颜色按照主题命名,使用虚拟文件夹, 直接在各个控制器针对不同主题单独设置

缺点:

  1. 扩展性差, 增加一个主题非常复杂

  2. 代码分散, 可维护性差

  3. 使用虚拟文件夹保存资源, 容易与其他资源容易产生冲突

  1. 方案2

  2. 抽取公共的切换主题类, 使用物理文件夹, 并将图片按照应用场景命名, 不按照主题命名, 但是按照主题划分文件夹

优点:

  1. 扩展性好, 增加主题简单

  2. 功能代码集中,
    方便维护

  3. 资源包单独管理,
    不会产生资源冲突

演练步骤

  1. 实现基本的换肤功能

  2. 使用用户偏好记录当前皮肤主题

  3. 抽取公共的皮肤管理类, 简化控制器逻辑

  4. 验证多处加载主题情景

  5. 加载主题文字颜色功能实现

你可能感兴趣的:(重点 (二十六) : 硬件/换肤)