一种iOS系统自定颜色方法及系统与流程

文档序号:14452896阅读:300来源:国知局

本发明属于通信技术领域,特别涉及ios系统自定义颜色方法及系统。



背景技术:

在ios系统的软件项目开发中,自定义颜色一般采用宏定义的技术方案,利用宏定义把需要的自定义颜色写在预编译中,该技术方案在软件配置时代码多,代码可读性差,进行编译时间的长,并且过多的预编译带来软件性能的瓶颈问题。

因此,如何在ios系统开发中快速自定义颜色,提高代码编译的效率,成为亟待解决的问题。



技术实现要素:

鉴于此,本发明的目的在于一种ios系统自定义颜色方法及系统,实现了快速地自定义颜色,提高了软件代码编译效率。

根据上述发明目的,本发明提供一种ios系统自定义颜色方法,所述方法包括:

s1、设置一颜色配置列表,所述颜色配置列表中建立关键字与颜色值的一一对应关系;

s2、当代码引用所述关键字时,获取所述颜色配置列表中所述关键字对应的颜色值,并根据所述颜色值生成uicolor对象。

优选地,步骤s2具体包括:

当代码引用所述关键字时,获取所述颜色配置列表中所述关键字对应的颜色值;

根据所述颜色值的格式,对所述颜色值进行解析,获取对应的rgb值或者rgba值;

根据所述rgb值或者rgba值,生成uicolor对象。

优选的,所述方法还包括:

将所述步骤s2实现的功能通过函数进行封装,生成一封装函数,所述封装函数的参数名称与所述关键字一致。

优选地,所述方法还包括:

将系统的原生类进行扩展,生成扩展类,所述扩展类的方法名称与所述颜色配置列表中的关键字一致。

优选地,所述方法还包括:

当系统运行并调用所述关键字时,在系统的原生类中查询对应的方法名称,若查询不成功,则启动消息转发机制;

系统在所述扩展类中查询所述关键字对应的方法名称,若查询成功,则执行所述关键字对应的封装函数。

根据上述发明目的,本发明提供一种ios系统自定义颜色系统,所述系统包括:

配置模块,用于设置一颜色配置列表,所述颜色配置列表中建立关键字与颜色值的一一对应关系;

处理模块,用于当代码引用所述关键字时,获取所述颜色配置列表中所述关键字对应的颜色值,并根据所述颜色值生成uicolor对象。

优选地,所述处理模块具体包括:

获取单元,用于当代码引用所述关键字时,获取所述颜色配置列表中所述关键字对应的颜色值;

解析单元,用于根据所述颜色值的格式,对所述颜色值进行解析,获取对应的rgb值或者rgba值;

生成单元,用于根据所述rgb值或者rgba值,生成uicolor对象。

优选地,所述系统还包括一封装模块,用于将所述处理模块的功能通过函数进行封装,生成一封装函数,所述封装函数的参数名称与所述关键字一致。

优选地,所述系统还包括一扩展类模块,用于所述将系统的原生类进行扩展,生成扩展类,所述扩展类的方法名称与所述颜色配置列表中的关键字一致。

优选地,所述扩展类模块还具体用于,当系统运行并调用所述关键字时,在系统的原生类中查询对应的方法名称,若查询不成功,则启动消息转发机制;系统在所述扩展类中查询所述关键字对应的方法名称,若查询成功,则执行所述关键字对应的封装函数。

与现有技术相比,本发明提供的ios系统自定义颜色方法及系统,具有以下有益效果:相较于现有技术中的采用宏定义方式定义颜色,本发明在系统软件运行时,通过采用动态调用自定义颜色配置列表的技术方案,提高了代码编译的效率,减少了代码编译的时间,给用户带来方便;自定义颜色配置列表以表格化形式存储,可读性极高,一目了然;软件编译过程中直接调用封装函数,或者直接调用扩展类的方法,无需要写过多复杂的逻辑代码,给用户带来更好的体验。

附图说明

下面将以明确易懂的方式,结合附图说明优选实施方式,对一种ios系统自定义颜色方法及系统的上述特性、技术特征、优点及其实现方式予以进一步说明。

图1是本发明一种ios系统自定义颜色方法的流程图;

图2是本发明一具体实施例的颜色配置列表;

图3是本发明一种ios系统自定义颜色系统的组成结构图。

具体实施方式

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。

为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。

如图1所示,根据本发明的一个实施例,一种ios系统自定义颜色方法,所述方法包括:

s1、设置一颜色配置列表,所述颜色配置列表中建立关键字与颜色值的一一对应关系;

s2、当代码引用所述关键字时,获取所述颜色配置列表中所述关键字对应的颜色值,并根据所述颜色值生成uicolor对象。

在系统中设置一颜色配置列表,在所述颜色配置列表中建立关键字与颜色值的一一对应关系。

本发明的一具体实施例,所述颜色配置列表还包括用以表示所述颜色值的类型,所述类型包括整数、浮点、字符串、字符。所述颜色值的格式用十六进制或者十进制表示,比如,“405eeb”为十六进制。所述颜色值的格式也可用十进制表示,比如[219,219,219]为十进制。如图2所示,图2为颜色配置列表的一具体实施例。所述颜色配置列表的存储形式是plist文件,所述plist文件采用的格式是json格式。从图2可以看出,关键字“key”与颜色值“value”一一对应。“type”用于表示颜色值value的类型,所述类型包括整数型、浮点型、字符串型。比如,关键字key“maiblue”对应的颜色值value为“405eeb”,所述颜色值value的类型type是“string”字符串。所述颜色值的格式为十六进制。

优选地,步骤s2具体包括:

当代码引用所述关键字时,获取所述颜色配置列表中所述关键字对应的颜色值;

根据所述颜色值的格式,对所述颜色值进行解析,获取对应的rgb值或者rgba值;

根据所述rgb值或者rgba值,生成uicolor对象。

在软件代码开发中,需要进行自定义颜色时,在代码中引用所述颜色配置列表中的关键字。系统运行时,查询所述颜色配置列表获取所述关键字对应的颜色值。根据所述颜色值的格式,对所述颜色值进行解析。所述颜色值的格式用十六进制或者十进制表示。若所述颜色值的格式采用十六进制时,按照十六进制的解析方法对所述颜色值进行解析,获取对应的rgb值或者rgba值。若所述颜色值的格式采用十进制时,按照十进制的解析方法对所述颜色值进行解析,获取对应的rgb值或者rgba值。并根据解析获得的rgb值或者rgba值,生成uicolor对象。

本发明的一具体实施例,以图2的颜色配置列表为例。在代码开发中需要对蓝色进行自定义时,代码中引用了关键字“mainblue”。系统运行时,查询所述颜色配置列表,获取所述关键字“mainblue”对应的颜色值“405eeb”,“405eeb”为十六进制格式。采用十六进制格式对“405eeb”进行解析,获取到rgb对应的r、g、b对应的数值。根据所述r、g、b的数值,生成uicolor对象。根据该技术方案,自定义颜色配置列表以表格化形式存储,可读性极高,一目了然。

根据该技术方案,在系统软件运行时,通过采用动态调用自定义颜色配置列表的技术方案,提高了代码编译的效率,减少了代码编译的时间,给用户带来方便。

本发明的一具体实施例,为了提高用户的代码开发效率,将所述步骤s2实现的功能通过函数进行封装,生成一封装函数,所述封装函数的参数名称与所述关键字一致。用户在代码开发中,只要写入该封装函数,系统运行时调用该封装函数,就实现步骤s2的功能。比如,设置该封装函数为xtcolorfetcher,在代码开发中需要对蓝色进行自定义时,在代码开发中只需要写入下面代码就可以实现,

[[xtcolorfetcher,shareinstance]colorwithkey:@“mainblue”];

所述封装函数的参数名称“mainblue”与关键字“mainblue”一致。

本发明的再一具体实施例,为了和ios系统原本的获取方式保持统一,将系统的原生类进行扩展,生成扩展类,所述扩展类的方法名称与所述颜色配置列表中的关键字一致。当系统运行并调用所述关键字时,在系统的原生类中查询对应的方法名称,若查询不成功,则启动消息转发机制;系统在所述扩展类中查询所述关键字对应的方法名称,若查询成功,则执行所述关键字对应的封装函数。

下面以一具体例子来进行说明,对原生的uicolor类进行扩展,得到一扩展的uicolor+allcolors类,该uicolor+allcolors中的方法名称与所述颜色配置列表中的关键字一致。在代码开发中需要对蓝色进行自定义时,在代码开发中只需要写入下面代码就可以实现,

[uicolor,mainblue];

由于方法名称“mainblue”在扩展的uicolor+allcolors类中,系统运行时,在原生uicolor类中查询方法名称“mainblue”,查询不成功,则启动消息转发机制。系统根据消息转发机制,动态地调用扩展的uicolor+allcolors类。在扩展类中查询到方法名称“mainblue”,直接调用封装函数“xtcolorfetcher”。根据方法名称“mainblue”,在所述颜色配置列表中查询关键字“mainblue”对应的颜色值,根据所述颜色值,生成uicolor对象,就可实现对蓝色进行自定义的功能。

通过该技术方案,开发人员通过简单的逻辑代码就可实现自定义颜色的技术方案,给开放人员带来更好的体验效果。

如图3所示,根据本发明的一个实施例,一种ios系统自定义颜色系统,所述系统包括:

配置模块30,用于设置一颜色配置列表,所述颜色配置列表中建立关键字与颜色值的一一对应关系;

处理模块31,用于当代码引用所述关键字时,获取所述颜色配置列表中所述关键字对应的颜色值,并根据所述颜色值生成uicolor对象。

在配置模块30中,设置一颜色配置列表,在所述颜色配置列表中建立关键字与颜色值的一一对应关系。本发明的一具体实施例,所述颜色值的格式用十六进制或者十进制表示。所述颜色配置列表的存储形式是plist文件,所述plist文件采用的格式是json格式。

处理模块31具体包括获取单元、解析单元和生成单元。在解析单元中,当代码引用所述关键字时,获取所述颜色配置列表中所述关键字对应的颜色值。解析单元根据所述颜色值的格式,对所述颜色值进行解析,获取对应的rgb值或者rgba值。具体地,所述颜色值的格式用十六进制或者十进制表示。若所述颜色值的格式采用十六进制时,按照十六进制的解析方法对所述颜色值进行解析,获取对应的rgb值或者rgba值。若所述颜色值的格式采用十进制时,按照十进制的解析方法对所述颜色值进行解析,获取对应的rgb值或者rgba值。生成单元根据解析获得的rgb值或者rgba值,生成uicolor对象。

本发明的一具体实施例,所述系统还包括一封装模块,将所述处理模块的功能通过函数进行封装,生成一封装函数,所述封装函数的参数名称与所述关键字一致。用户在代码开发中,只要写入该封装函数,系统运行时调用该封装函数,就实现所述处理模块的功能。比如,设置该封装函数为xtcolorfetcher,在代码开发中需要对蓝色进行自定义时,在代码开发中只需要写入下面代码就可以实现,

[[xtcolorfetcher,shareinstance]colorwithkey:@“mainblue”]。

通过该技术方案,提高了用户的代码开发效率。

本发明的再一具体实施例,所述系统还包括一扩展类模块,通过所述扩展类模块将系统的原生类进行扩展,生成扩展类,所述扩展类的方法名称与所述颜色配置列表中的关键字一致。当系统运行并调用所述关键字时,在系统的原生类中查询对应的方法名称,若查询不成功,则启动消息转发机制;系统在所述扩展类中查询所述关键字对应的方法名称,若查询成功,则执行所述关键字对应的封装函数。

通过该技术方案,对系统的原生类进行扩展,和ios系统原本的获取方式保持统一,进一步提高了代码的开发效率,给用户带来更好的体验效果。

综上所述,本发明提高了代码编译的效率,减少了代码编译的时间,给用户带来方便。

应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1