iOS的换肤方法和装置制造方法及图纸

技术编号:28144293 阅读:29 留言:0更新日期:2021-04-21 19:26
本发明专利技术公开了一种iOS的换肤方法和装置,在本发明专利技术的实施例中,为了减少对原生类的侵入性,增加后期的可扩展性,通过增加分类的方式配置皮肤组件的颜色和图片,赋值则直接采用UI的原生类进行赋值,从而不必对UI原生类中的图片制式等进行解析,减轻了对原生类的侵入性。而添加分类相对于原生类,受到的约束减少,可扩展性增强。扩展性增强。扩展性增强。

【技术实现步骤摘要】
iOS的换肤方法和装置


[0001]本专利技术涉及一种iOS的换肤方法,本专利技术还涉及一种iOS的换肤装置。

技术介绍

[0002]iOS是由苹果公司开发的移动操作系统,于2007年1月9日发布。苹果在iOS13之后推出了黑暗模式,在黑暗模式下,背景和文字颜色需要反转,但传统的换肤组件只有简单的图片更换功能,功能比较单一。iOS13之后苹果给出了自己的黑暗模式适配方案,但是含有一些换肤功能的应用为了适配黑暗模式,需要对原有换肤组件做很大的改动,并且在面临一些三方UI组件时,存在不便于对源码进行修改的问题,整体维护成本过高。
[0003]如在一些实现中,针对预定的UI(User Interface,即用户界面),首先获取换肤的初始图像,并基于初始图像的每一个像素单元的颜色将初始图像划分成多个色块区域,进而获取用户选择的色调风格信息,根据用户选择的色调风格信息为每一个色块区域选择合适的替代颜色,从而经过替代后获得目标图像。其中的替代颜色是UI自定义的颜色,获取合适的替代颜色的过程会对UI的原生类产生过多的侵入,具体是需要被赋予权能,而能够调用UI自定义的颜色和图片并按照UI框架所包含类对目标图像进行赋值;同时,可扩展性受UI自身属性的限制而相对较差。

技术实现思路

[0004]在本专利技术的实施例中提供了一种iOS的换肤方法,以期减少对UI的侵入,并具有较好的可扩展性;本专利技术的实施例中还提供了一种iOS的换肤装置。
[0005]在本专利技术的实施例中,提供了一种iOS的换肤方法,针对给定的UI,为该UI添加分类,用以设置皮肤组件中的图片、颜色的参数,绑定皮肤组件、皮肤标识后存放于预设的可变字典中;监听皮肤切换命令;若监听到皮肤切换命令,响应该切换命令确定的皮肤标识,从可变字典中查询到相应的参数,调用查询到的参数,为各皮肤组件赋值。
[0006]可选地,采用UI原有的赋值方法为各组件皮肤进行赋值。
[0007]可选地,所述可变字典为数据表;相应地,皮肤组件作为键构成数据表的横向;皮肤标识构成数据表的纵向;数据表内存放与键相应的值,形成键

值对。
[0008]可选地,键为UI原有类中赋值方法转换的字符串。
[0009]可选地,所述分类为相对于UI已有分类添加的配置模块。
[0010]可选地,所述配置模块封装了颜色工具类和图片工具类,适配为颜色配置模块和图片配置模块。
[0011]可选地,图片工具类为单例类。
[0012]可选地,在给定的UI初始化时,对所述配置模块进行解析,将解析出的图片、颜色参数存入可变字典中,以备调用。
[0013]可选地,图片工具类所封装的图片按照指定的标准进行命名,且关闭名称修改权限。
[0014]在本专利技术的实施例中,还提供了一种iOS的换肤装置,其包括:配置单元,该配置单元针对给定的UI,为该UI添加分类,用以设置皮肤组件中的图片、颜色的参数,绑定皮肤组件、皮肤标识后存放于预设的可变字典中;监听单元,用于监听皮肤切换命令;切换单元,若监听到皮肤切换命令,响应该切换命令确定的皮肤标识,从可变字典中查询到相应的参数,调用查询到的参数,为各皮肤组件赋值。
[0015]在本专利技术的实施例中,为了减少对原生类的侵入性,增加后期的可扩展性,通过增加分类的方式配置皮肤组件的颜色和图片,赋值则直接采用UI的原生类进行赋值,从而不必对UI原生类中的图片制式等进行解析,减轻了对原生类的侵入性。而添加分类相对于原生类,受到的约束减少,可扩展性增强。
附图说明
[0016]图1为一实施例中iOS的换肤方法流程图。
具体实施方式
[0017]应知,UI是与用户接触最紧密的对象,是对软件的人机交互、操作逻辑、界面美观的整体设计。由于其是用户与手机、计算机、中控等交互的窗口,而对个性化、舒适性有更高的要求,强调视觉元素的组织和呈现,因此,UI的皮肤是软件图形设计师的主要设计对象。
[0018]应知,UI框架由类组成,UI设计软件提供了丰富的类,如基础UI窗体类(父类)、UI管理器、UI遮罩管理、窗体类型等主类,再如颜色工具类、图片工具类等工具类,以及其他丰富的分类。
[0019]在本专利技术的一些实施例中,基于Objective

C的动态语言特性和KVO观察者模式,对目标UI的换肤组件重新设计,即对目标UI添加类,而不是直接调用UI自身的换肤组件。
[0020]为了应对更多场景下,颜色和图片可能需要分开单独设置的问题,在本专利技术的实施例中将换肤模块分为颜色、图片两种,分开设置。
[0021]针对不同皮肤组件的颜色、图片,进行统一标准的制定,形成标准体系。按照统一确定的标准,针对不同的皮肤组件生成对应的颜色配置文件和皮肤配置文件。然后将这些皮肤配置文件和对应的图片资源文件放入工程中,留待相应UI初始化时解析。
[0022]图片资源文件中所包含的图片需要按照已经制定的标准进行命名,不可随意更改。
[0023]UI的程序初始化阶段,需要对换肤组件进行初始化,需要指定首次安装时的默认皮肤,同时解析所述颜色配置文件和皮肤配置文件,将相应的图片资源存放到指定的位置。要用到换肤功能的组件需要调用换肤组件已经提供的方法,也就是与UI自身的原生类中相应的换肤方法去设置对应的颜色或图片,减少换肤设计的工作量。
[0024]如果仅是肤色的修改,可以直接调用颜色配置文件,根据用户的指令传入定义好
的肤色标识所对应的颜色值,对肤色进行赋值。
[0025]在本专利技术的实施例中,单就换肤方法而言,其所对应的框架主要由一个主类,几个工具类,和多个分类来实现。
[0026]其中,主类主要用来对皮肤组件进行初始化配置,皮肤切换,以及皮肤的定义。
[0027]工具类主要由两个部分组成,其中一个是颜色工具类,另一个是图片工具类。因为设置背景色、文字色彩等用到颜色的地方比较多,多次解析颜色配置文件会存在性能问题,因此,优选地,颜色工具类被设计为一个单例类,初始化时解析和并在指定的位置存储皮肤配置信息。
[0028]单例类由软件设计模式中的单例模式所创建,通过单例模式的方法创建的类在当前进程中只有一个实例。对于框架中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计时工具或ID(序号)生成器。如在Windows中就只能打开一个任务管理器。如果不使用机制对窗口对象进行唯一化,将弹出多个窗口,如果这些窗口显示的内容完全一致,则是重复对象,浪费内存资源;如果这些窗口显示的内容不一致,则意味着在某一瞬间系统有多个状态,与实际不符,也会给用户带来误解,不知道哪一个才是真实的状态。因此有时确保系统中某个对象的唯一性即一个类只能有一个实例非常重要。
[0029]关于颜色配置文件,在一些实施例中,将其配置为一个txt文件,需要按照给定的格式进行编辑,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种iOS的换肤方法,其特征在于,针对给定的UI,为该UI添加分类,用以设置皮肤组件中的图片、颜色的参数,绑定皮肤组件、皮肤标识后存放于预设的可变字典中;监听皮肤切换命令;若监听到皮肤切换命令,响应该切换命令确定的皮肤标识,从可变字典中查询到相应的参数,调用查询到的参数,为各皮肤组件赋值。2.根据权利要求1所述的换肤方法,其特征在于,采用UI原有的赋值方法为各组件皮肤进行赋值。3.根据权利要求1所述的换肤方法,其特征在于,所述可变字典为数据表;相应地,皮肤组件作为键构成数据表的横向;皮肤标识构成数据表的纵向;数据表内存放与键相应的值,形成键

值对。4.根据权利要求3所述的换肤方法,其特征在于,键为UI原有类中赋值方法转换的字符串。5.根据权利要求1所述的换肤方法,其特征在于,所述分类为相对于UI已有分类添加的配置模块。6.根据权利要求5所...

【专利技术属性】
技术研发人员:周建朋刘林谢玉鑫胡杨杜伟郝凡宁
申请(专利权)人:金现代信息产业股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1