[发明专利]一种界面的更新方法和装置有效
申请号: | 201810779822.2 | 申请日: | 2018-07-16 |
公开(公告)号: | CN110727482B | 公开(公告)日: | 2023-05-12 |
发明(设计)人: | 徐健 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F9/451 | 分类号: | G06F9/451 |
代理公司: | 北京君以信知识产权代理有限公司 11789 | 代理人: | 谭镇 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 界面 更新 方法 装置 | ||
本申请实施例提供了一种界面的更新方法和装置,所述界面具有对应的静态样式映射表,所述方法包括:加载样式文件;从所述样式文件中读取待修改样式;从所述静态样式映射表中查找到所述待修改样式的应用钩子函数;根据所述应用钩子函数和所述待修改样式动态更新所述界面。本申请实施例通过样式文件和静态样式映射表,分离了样式修改逻辑和绑定调用逻辑,并且基于静态样式映射表查找对应的应用钩子函数,由于静态样式映射表采用键值对方式存储样式,因此在查找时避免了if…else和多次字符串判断,提高了处理效率。
技术领域
本申请涉及数据处理技术领域,特别是涉及一种界面的更新方法和一种界面的更新装置。
背景技术
目前,应用程序的UI(User Interface,用户界面)的换肤方案需要对皮肤包做分端处理,如针对MacOS、iOS和Android等操作系统上分别提供不一样的样式皮肤包,从而增加了编写和维护的成本。
在MacOS和IOS等操作系统上,传统软件创作没有现成的类似HTML5的CSS样式管理机制,UI逻辑和UI视觉完全耦合,无法实现动态灵活的界面换肤。例如,在代码创作中要将UISwitch组件的ontint颜色设置为红色的代码为:UISwitch switch;[switchsetOnTintColor:[UIColor redColor]],这样存在的问题是,在代码编译发布后,这个switch将永远为红色,但业务场景中有时需要将已发布线上运行的界面颜色替换为黑色。
通常,如果换肤方案要实现某组件的样式解耦,一般会对组件做继承扩展,同时对于需动态化的样式属性名(字符串)采用基于条件判断的方式来穷举,而样式的属性值外部存储于其他可替换的资源文件中(称之为外部样式文件)。
上述的方案存在缺陷,一方面因为采用继承耦合性太强,不能实现一些原生组件的样式解耦,另一方面因为依赖于if...else的语句,代码难以维护,多次的字符串比较和判断效率低下。
发明内容
鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种界面的更新方法和相应的一种界面的更新装置。
为了解决上述问题,本申请公开了一种界面的更新方法,所述界面具有对应的静态样式映射表,所述方法包括:
加载样式文件;
从所述样式文件中读取待修改样式;
从所述静态样式映射表中查找到所述待修改样式的应用钩子函数;
根据所述应用钩子函数和所述待修改样式动态更新所述界面。
优选地,在所述加载样式文件之前,还包括:
针对界面设置对应的静态样式映射表;
在所述静态样式映射表中绑定样式的属性名和应用钩子函数。
优选地,在所述加载样式文件之前,还包括:
设置样式文件,所述样式文件包括样式的属性名和属性值;
将所述样式文件保存于外部服务器或者本地客户端。
优选地,所述待修改样式包括目标属性名,所述从所述静态样式映射表中查找到所述待修改样式的应用钩子函数,包括:
根据所述目标属性名在所述静态样式映射表查找到匹配的属性名;
获取所述属性名对应的应用钩子函数。
优选地,在所述加载样式文件之后,还包括:
对所述样式文件中样式的属性值进行类型转换得到转换属性值;
将所述属性值和对应的转换属性值保存于缓存中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810779822.2/2.html,转载请声明来源钻瓜专利网。