界面的可视化开发方法及装置与流程

文档序号:12119620阅读:578来源:国知局
本发明实施例涉及计算机
技术领域
:,尤其涉及一种界面的可视化开发方法及装置。
背景技术
::随着苹果手机在全球范围内的流行,苹果手机的iOS系统应用程序的开发也越来越火热地进行着。开发人员一般使用Xcode来开发iOS系统的应用程序。Xcode是苹果公司开发的编程软件,其具有统一的用户界面设计,编码、测试、调试都在一个简单的窗口内完成,是开发人员建立OSX和iOS应用程序的最快捷的方式。Xcode开发iOS应用程序视图界面一般有两种方式:第一种方式是源代码方式,也即开发人员通过编译源代码来实现应用程序需要显示的视图界面;另一种方式是可视化开发,虽然可视化开发的根本也是通过调用源代码来实现需求,但这种方式相对于传统的源代码具有形象、敏捷高效的特点,开发人员可以在可视化的界面上设计界面的需求。可视化开发方法中的AutoLayout(自动布局)工具更是将开发效率大大提高,这也是苹果公司推荐的一种界面的开发方式。AutoLayout是一种基于约束的、描述性的视图布局系统,它与以往定义视图的位置和尺寸不同(这里的视图可以理解为界面中需要显示的某一控件内包含的视图,这里的控件可以理解为一个容器),以往在定义界面中各个视图的位置时,会设置各个视图在屏幕上的坐标。而AutoLayout的位置确定是以所谓相对位置的约束来定义的,在开发中可以给视图指定尺寸及相对位置的约束值,例如视图A的最左端与视图B的最右端相距5个约束值,或者视图A的距离屏幕底部4个约束值。这里的约束值与显示屏幕的像素是有着特定的对应关系的,对于iphone6、iphone6s等机型来说一个约束值对应2个像素,对于iphone6splus等机型来说一个约束值对应3个像素。使用这种约束条件(也即约束值与像素的映射关系)来定义界面视图的位置和尺寸最大好处就是一举解决了不同分辨率和屏幕尺寸下界面的适配问题,另外也简化了旋转时对视图的位置的定义,也就是说原来在底部之上10像素居中的某一视图,不论在旋转屏幕或是更换设备的时候,该视图始终还在底部之上10像素居中的位置,不会发生变化。然而,在实现本发明的过程中发明人发现,现有技术中在进行可视化开发时,普通的约束值类别规定的单位约束值一般为整数,例如为1,在这种情况下约束值只能设置为单位约束值1的整数倍,例如为40或60等,无法取到0至1之间的浮点数。这使得开发人员在可视化开发中设置视图的位置以及尺寸时极为不便。技术实现要素:本发明实施例提供一种界面的可视化开发方法及装置,用于克服现有技术中在进行可视化开发时约束值无法取到0至1之间的浮点数,为开发人员设置视图带来不便的缺陷。为实现上述目的,第一方面,本发明实施例提供了一种界面的可视化开发方法,包括:获取用户输入的第一数值;获取单位约束值与第一数值的比值,作为实际约束值;其中,所述单位约束值,为当前的约束值自定义类别所对应的单位约束值;利用所述实际约束值设置界面中视图的尺寸和/或视图的位置。可选地,所述获取单位约束值与第一数值的比值,包括:通过执行当前约束值自定义类别对应的执行文件来获取单位约束值与第一数值的比值。可选地,所述h文件以及m文件是通过子类化约束值的约束函数得到的,所述约束值的约束函数包含所述约束值自定义类别的约束条件。可选地,所述利用所述实际约束值设置界面中视图的尺寸和/或视图的位置,包括:调用自动布局工具利用所述实际约束值设置界面中视图的尺寸和/或视图的位置。可选地,所述利用所述实际约束值设置界面中视图的位置,包括:利用所述实际约束值设置所述视图相对于父视图或相对于兄弟视图的相对位置,和/或所述视图相对于父视图或相对于兄弟视图的对齐方式;第二方面,本发明实施例还提供了一种界面的可视化开发装置,包括:数值获取单元,用于获取用户输入的第一数值;运算单元,用于获取单位约束值与第一数值的比值,作为实际约束值;其中,所述单位约束值,为当前的约束值自定义类别所对应的单位约束值;视图设置单元,用于利用所述实际约束值设置界面中视图的尺寸和/或视图的位置。可选地,所述运算单元进一步用于:通过执行当前约束值的自定义类别对应的执行文件,来获取单位约束值与第一数值的比值。可选地,所述执行文件是通过子类化约束值的约束函数得到的,所述约束值的约束函数包含所述约束值自定义类别的约束条件。可选地,所述视图设置单元进一步用于:调用自动布局工具利用所述实际约束值设置界面中视图的尺寸和/或视图的位置。可选地,所述视图设置单元进一步用于:利用所述实际约束值设置所述视图相对于父视图或相对于兄弟视图的相对位置,和/或所述视图相对于父视图或相对于兄弟视图的对齐方式。本发明实施例提供的界面的可视化开发方法和装置中,首先获取用户输入的第一数值,接着获取当前约束值自定义类别对应的单位约束值与第一数值的比值得到实际约束值,最后再利用实际约束值对界面中视图的尺寸或位置进行设置。由于第一数值可以大于单位约束值,因此得到的实际约束值可以为0-1之间的浮点数,从而实现在可视化开发界面时,视图的尺寸或位置可以被0-1之间的浮点数所约束,为开发人员设置视图带来了极大的便利。此外,本发明实施例提供的方法简单易实现,技术风险低且可以高效复用,能够广泛的应用于可视化界面开发中。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明提供的一种界面的可视化开发方法实施例流程图;图2为本发明提供的另一种界面的可视化开发方法实施例流程图;图3为本发明提供的约束值自定义类别配置示意图;图4为本发明提供的一种界面的可视化开发装置实施例结构示意图;图5为本发明提供的一种电子设备实施例结构框图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。第一方面,本发明实施例提供了一种界面的可视化开发方法,如图1所示,包括:S101、获取用户输入的第一数值;其中,这里的第一数值是用户根据最终要得到的实际约束值而设置的,用户具体如何设置第一数值在步骤S102中会与单位约束值的概念一并进行说明。此外,这里的获取第一数值,可以是获取用户在相应代码相应位置中预先修改的第一数值,也可以是在获取之前为用户提供一个可视化的输入窗口,然后获取用户本次在窗口中输入的第一数值,本发明实施例对此不作具体限定。S102、获取单位约束值与第一数值的比值作为实际约束值;其中,所述单位约束值,为当前的约束值自定义类别所对应的单位约束值;首先要说明的是,这里的当前的约束值自定义类别是本发明实施例提供的方法在执行各个步骤之前用户就预先配置好的。不难理解的是,对于现有的普通约束值类别来说,普通类别所定义的单位约束值以及约束值的其他属性都是具有指定的使用场景的,一般是固定不变的。因此如果想要对单位约束值进行改变,并使得最后得到的实际约束值为用户想要的约束值,就需要预先自定义设置一个新的约束值类别。这个自定义类别也定义了该类别对应的单位约束值以及其他属性,且该类别能够支持对于单位约束值的更改。其次要说明的是,这里的单位约束值以及步骤S101中的第一数值的设置均是用户根据最终想要得到的实际约束值而设置的。可以理解的是,本发明实施例的一个目的在于使得最终的实际约束值为0至1之间的浮点数,例如0.5或0.3等等。由于步骤S102中预执行单位约束值与第一数值的比例运算从而得到实际约束值,因此这里的第一数值可以大于单位约束值。举例来说,为了便于用户每次设置第一数值,这里的单位约束值可以被配置为1,进而这里的第一数值就可以被设置为大于1的实数,例如2-10之间的任意实数,从而使得经过比例运算得到的结果可以为0至1之间的浮点数。在这一基础上,本发明实施例提供的方法首先可以获取该自定义类别对应的单位约束值,进而再获取单位约束值与第一数值的比值,并将该比值作为实际约束值,也即用户想要得到的约束值,以备后续的步骤使用。S103、利用所述实际约束值设置界面中视图的尺寸和/或视图的位置。具体来说,在获得了想要得到的实际约束值之后,就可以将该实际约束值设置为某一视图的尺寸或相对位置,从而可以根据实际需求对各个视图在页面中的显示情况进行设置规划。举例来说,在经过步骤S102得到了实际约束值为0.5的结果后,步骤S103中可以设置某一分割线的高度为0.5point,或设置视图A的最左侧与视图B的最右侧的相对距离为0.5point,这里的point可以理解为约束值的意思,从而可以规划页面中分割线的高度以及视图A与视图B的相对位置。本发明实施例提供的界面的可视化开发方法中,首先获取用户输入的第一数值,接着获取当前约束值自定义类别对应的单位约束值与第一数值的比值得到实际约束值,最后再利用实际约束值对界面中视图的尺寸或位置进行设置。由于第一数值可以大于单位约束值,因此得到的实际约束值可以为0-1之间的浮点数,从而实现在可视化开发界面时,视图的尺寸或位置可以被0-1之间的浮点数所约束,为开发人员设置视图带来了极大的便利。此外,本发明实施例提供的方法简单易实现,技术风险低且可以高效复用,能够广泛的应用于可视化界面开发中。在上述实施例的基础上,本发明实施例又提供了一种界面的可视化开发方法,如图2所示,包括:S201、获取用户输入的第一数值;S202、通过执行当前约束值自定义类别对应的执行文件来获取单位约束值与第一数值的比值;其中,所述单位约束值,为当前的约束值自定义类别所对应的单位约束值;S203、利用所述实际约束值设置界面中视图的尺寸和/或视图的位置。其中,这里的步骤S201与步骤S203与上述实施例中的步骤S101与步骤S103相同,为节约篇幅,在此不再赘述。下面重点对步骤S202进行详细说明。在步骤S201获取了第一数值之后,在步骤S202中,首先根据当前的约束值自定义类别的名称搜索预存的该名称对应的执行文件,具体来说这里的执行文件可以为h文件以及m文件。其中,这里的h文件以及m文件是利用Xcode开发iOS应用程序视图界面中常用的文件。h文件为头文件,用于声明所要执行的操作中各个成员变量、操作的方法以及其他属性等等;m文件主要用于实现h文件声明的方法,也就是说包含执行该方法步骤的详细代码。可以理解的是,此时获取到的h文件以及m文件中包含了预先配置的、用于执行单位约束值与第一数值的比值运算的代码。因此在获取了h文件以及m文件之后,就可以通过执行h文件以及m文件来获取单位约束值与第一数值的比值,进而得到实际约束值以供设置视图使用。进一步地,这里的h文件以及m文件是在执行本发明的方法之前,用户通过子类化约束值的约束函数得到并预存的。其中这里的约束值的约束函数可以具体为NSLayoutConstraint函数,该函数可以包含所述约束值自定义类别的约束条件。首先解释一下子类化的概念。如果说对某一函数进行子类化,那么可以把该函数当做父函数,子类化的过程就是由父函数生成子函数的过程。其中子函数与父函数具有一定的共性,也就是说继承了父函数的一些特点,子函数也具有自己的特性,也就是说也与父函数有些不同之处。这里的NSLayoutConstraint是可视化开发中常用的约束值的约束函数,为了使得本发明实施例提供的方法既能够满足可视化开发中对于约束值的一些设置,又能够实现本发明实施例中对于实际约束值的特殊要求,因此本发明实施例中需要对NSLayoutConstraint函数进行子类化。为便于理解,下面对上述过程进行举例说明。这里以设置约束值为0.5个point高度的分割线为例。子类化NSLayoutConstraint,得到下述h文件以及m文件。a).h文件:(用于声明其为IB_DESIGNABLE,也即是可修改可变的)IB_DESIGNABLE@interfaceALOnePixelConstant:NSLayoutConstraint@property(nonatomic)IBInspectableNSIntegeronePixelConstant;@endb).m文件:(用于执行修改约束值的方法)#import"ALOnePixelConstant.h"@implementationALOnePixelConstant-(void)setOnePixelConstant:(NSInteger)onePixelConstant{_onePixelConstant=onePixelConstant;self.constant=onePixelConstant*1.0/2;}@end其中,h文件和m文件里定义了约束值自定义的类别,也即为代码中标识的“ALOnePixelConstant.h”类别。m文件里还包含用于执行比例运算的语句,也即m文件倒数第三行的语句。这里的self.constant代表最终的实际约束值,这里的onePixelConstant代表“ALOnePixelConstant.h”类别下的单位约束值,单位约束值后面做比例运算的数值(在该代码中是2,后文会对为什么这里设置为2进行详细说明)也即用户输入的第一数值。由于h文件和m文件里定义的约束值自定义类别为“ALOnePixelConstant.h”类别,因此在执行本发明实施例提供的方法之前,在配置当前的约束值自定义类别时,如图3所示,用户应该将其配置为“ALOnePixelConstant.h”类别。在这种情况下,本发明实施例在执行步骤S202时,就会根据被配置的自定义类别的名称“ALOnePixelConstant.h”,寻找“ALOnePixelConstant.h”类别对应的上述h文件和m文件。在寻找到上述h文件和m文件之后,就会执行m文件中单位约束值与第一数值之间的比例运算,得到实际约束值。如图3所示,由于“ALOnePixelConstant.h”类别对应的单位约束值被配置为1,而用户预得到的实际约束值为0.5,显然这里的第一数值就需要被配置为2。以此类推,如果下一次用户预得到的实际约束值为0.2,而“ALOnePixelConstant.h”类别对应的单位约束值依然被配置为1,那么用户此时需要将第一数值配置为5。上述过程可以总结为:用户预得到的实际约束值为0.5,在执行本发明实施例提供的方法之前,用户将约束值的自定义类别设置为“ALOnePixelConstant.h”类别,该类别对应的单位约束值为1。因此用户将第一数值配置为2。然后本发明实施例提供的方法首先获取第一数值2,再判断当前的约束值类别为“ALOnePixelConstant.h”,根据这一名称查询到对应的h文件和m文件,执行该h文件和m文件也即使得单位约束值为1除以第一数值2,从而得到实际约束值0.5。最后在利用实际约束值0.5对可视化界面中的视图的尺寸和/或位置进行设置,从而实现使得实际约束值取得0-1之间的浮点数的目的,便于开发人员的可视化开发。在具体实施时,可以理解的是,上述方法实施例中利用实际约束值设置界面中视图的尺寸和/或视图的位置也即步骤S103以及步骤S203可以通过多种方式实施,其中一种可选的实施方式为:调用自动布局工具并利用实际约束值设置界面中视图的尺寸和/或视图的位置。具体来说,这里可以具体调用AutoLayout工具来进行界面的自动布局,AutoLayout是一种Xcode可视化开发中常用的自动布局的工具。在这里,本发明实施例可以通过调用AutoLayout工具,利用AutoLayout工具提供的功能来将界面中的某一视图或某些视图的尺寸和/或位置设置为实际约束值。这样做的好处是,可以充分利用AutoLayout工具的可视化性能,在获得想要得到的实际约束值后,能够快速有效地将实际约束值应用在视图的设置中,且操作全部为可视化操作,方便简洁易于实现。此外,在具体实施时,上述方法实施例的步骤S103以及步骤S203中“利用实际约束值设置界面中视图的尺寸和/或视图的位置”可以具体为:利用实际约束值来设置界面中当前编辑的视图的绝对尺寸,例如视图的高或宽等等。还可以设置当前编辑的视图相对于父视图或相对于兄弟视图的相对位置。父视图一般可以为界面的主视图,子视图可以为父视图中的小视图,例如一个大页面中的小按钮,子视图与子视图之间互称为兄弟视图。还可以设置当前视图相对于父视图或相对于兄弟视图的对齐方式,例如当前视图位于父视图的居中位置,与兄弟视图水平对齐等等。第二方面,本发明实施例提供了一种界面的可视化开发装置,如图4所示,包括:数值获取单元401、运算单元402以及视图设置单元403。其中,数值获取单元401获取用户输入的第一数值;运算单元402获取单位约束值与第一数值的比值作为实际约束值;其中,所述单位约束值,为当前的约束值自定义类别所对应的单位约束值;视图设置单元403利用所述实际约束值设置界面中视图的尺寸和/或视图的位置。本发明实施例提供的界面的可视化开发装置中,数值获取单元401首先获取用户输入的第一数值,接着运算单元402获取当前约束值自定义类别对应的单位约束值与第一数值的比值得到实际约束值,最后视图设置单元403再利用实际约束值对界面中视图的尺寸或位置进行设置。由于第一数值可以大于单位约束值,因此得到的实际约束值可以为0-1之间的浮点数,从而实现在可视化开发界面时,视图的尺寸或位置可以被0-1之间的浮点数所约束,为开发人员设置视图带来了极大的便利。此外,本发明实施例提供的装置简单易实现,技术风险低且可以高效复用,能够广泛的应用于可视化界面开发中。在具体实施时,这里的运算单元402还可以进一步用于:通过执行当前约束值的自定义类别对应的执行文件,来获取单位约束值与第一数值的比值。也就是说,运算单元402首先根据当前的约束值自定义类别的名称搜索预存的该名称对应的执行文件,具体来说可以为对应的h文件以及m文件。在获取了h文件以及m文件之后,通过执行h文件以及m文件来获取单位约束值与第一数值的比值,进而得到实际约束值以供设置视图使用。这里的h文件以及m文件已经在前文中进行了详细的解释,在此不再赘述。进一步地,这里的h文件以及m文件是本发明实施例提供的装置在实施对应的操作之前,用户通过子类化约束值的约束函数得到并预存的,具体可以为通过子类化NSLayoutConstraint函数得到的。关于子类化NSLayoutConstraint函数的内容也已经在前文中进行了详细的解释,在此不再赘述。此外在具体实施时,这里的视图设置单元403可以调用自动布局工具(具体可以为AutoLayout工具)利用实际约束值设置界面中视图的尺寸和/或视图的位置。这里的视图设置单元403设置视图的尺寸和/或视图的位置,可以为利用实际约束值设置界面中视图的绝对尺寸,和/或视图相对于父视图或相对于兄弟视图的相对位置,和/或视图相对于父视图或相对于兄弟视图的对齐方式。关于调用AutoLayout工具以及视图设置的内容也已经在前文进行了相应的解释。此外,图5示出本发明实施例提供的电子设备结构框图。参照图5,该电子设备可以包括:处理器(processor)51、存储器(memory)52以及总线53;其中,所述处理器51以及存储器52通过所述总线55完成相互间的通信;所述处理器51用于调用所述存储器52中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:获取用户输入的第一数值;获取单位约束值与第一数值的比值作为实际约束值;其中,所述单位约束值,为当前的约束值自定义类别所对应的单位约束值;利用所述实际约束值设置界面中视图的尺寸和/或视图的位置。本发明实施例还公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:获取用户输入的第一数值;获取单位约束值与第一数值的比值作为实际约束值;其中,所述单位约束值,为当前的约束值自定义类别所对应的单位约束值;利用所述实际约束值设置界面中视图的尺寸和/或视图的位置。本发明实施例还提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:获取用户输入的第一数值;获取单位约束值与第一数值的比值作为实际约束值;其中,所述单位约束值,为当前的约束值自定义类别所对应的单位约束值;利用所述实际约束值设置界面中视图的尺寸和/或视图的位置。不难理解的是,上述实施例中的举例说明只是为了便于更好地理解本发明实施例提供的方法或装置,并不能构成对本发明的具体限定。且上述的各个优选实施方式之间不会相互影响,各个优选实施方式之间的任意组合所得到的方案均应该落入本发明的保护范围。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1