CN114721620B - 一种数据处理方法及装置 - Google Patents
一种数据处理方法及装置 Download PDFInfo
- Publication number
- CN114721620B CN114721620B CN202210512594.9A CN202210512594A CN114721620B CN 114721620 B CN114721620 B CN 114721620B CN 202210512594 A CN202210512594 A CN 202210512594A CN 114721620 B CN114721620 B CN 114721620B
- Authority
- CN
- China
- Prior art keywords
- width
- determining
- line
- current
- current target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1407—General aspects irrespective of display type, e.g. determination of decimal point position, display with fixed or driving decimal point, suppression of non-significant zeros
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了一种数据处理方法及装置,可以获得元素宽度组;其中,元素宽度组中包括至少一个元素的宽度,各元素均待排列在目标视图控件的视图界面中,各元素的高度均为第一高度;基于各元素的宽度以及预定义的元素排列规则,确定当在视图界面中对各元素进行横向排列时的总排列行数;元素排列规则至少包括:在视图界面中对各元素进行横向排列时,两两元素间均无重叠区域;将总排列行数与第一高度的乘积确定为视图界面的高度。本发明可以无需真实的执行将元素在视图界面中进行排列,而仅基于各元素的宽度和元素排列规则,即可以确定各元素在视图界面中的总排列行数,可以有效实现对高度的确定,提高高度获取效率。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据处理方法及装置。
背景技术
随着计算机科学与技术的发展,视图控件的控制技术不断提高。
CollectionView是一个通用化的视图控件。当前,有些应用场景需要在将多个元素布置在CollectionView之前,即确定出该多个元素在CollectionView中占用的高度。
但是,元素在现有技术无法有效的提前确定出上述高度。
发明内容
鉴于上述问题,本发明提供一种克服上述问题或者至少部分地解决上述问题的数据处理方法及装置,技术方案如下:
一种数据处理方法,包括:
获得元素宽度组;其中,所述元素宽度组中包括至少一个元素的宽度,各所述元素均待排列在目标视图控件的视图界面中,各所述元素的高度均为第一高度;
基于各所述元素的宽度以及预定义的元素排列规则,确定当在所述视图界面中对各所述元素进行横向排列时的总排列行数;所述元素排列规则至少包括:在所述视图界面中对各所述元素进行横向排列时,两两所述元素间均无重叠区域;
将所述总排列行数与所述第一高度的乘积确定为所述视图界面的高度。
可选的,所述目标视图控件为collectionView;所述基于各所述元素的宽度以及预定义的元素排列规则,确定当在所述视图界面中对各所述元素进行横向排列时的总排列行数,包括:
基于各所述元素的宽度和所述元素排列规则,确定当在所述视图界面中的至少一行子界面区域中依次排列各所述元素时的总排列行数;各所述子界面区域的高度均为所述第一高度,各所述子界面区域的宽度均为预设的第一宽度。
可选的,所述基于各所述元素的宽度和所述元素排列规则,确定当在所述视图界面中的至少一行子界面区域中依次排列各所述元素时的总排列行数,包括:
基于各所述元素的宽度,确定当按照自上而下、由左至右的排列次序,在各所述子界面区域中依次排列各所述元素时的总排列行数。
可选的,所述基于各所述元素的宽度,确定当按照自上而下、由左至右的排列次序,在各所述子界面区域中依次排列各所述元素时的总排列行数,包括:
将第二元素确定为当前目标元素,判断第一元素的元素宽度是否不小于所述第一宽度,如果是,则确定当前目标元素在所述视图界面中排列的子界面区域行次序为第二行,将第二行确定为当前目标行次序,将当前目标元素的宽度确定为当前目标行次序的当前元素占用宽度;其中,所述第一元素为所述元素宽度组中位置次序为第一位的宽度所对应的元素,所述第二元素为所述元素宽度组中位置次序为第二位的宽度所对应的元素;
否则,将所述第一元素与当前目标元素的宽度和值确定为当前宽度和值;如果当前宽度和值不大于所述第一宽度,则确定当前目标元素的子界面区域行次序为第一行,将第一行确定为当前目标行次序,将当前宽度和值确定为当前目标行次序的当前元素占用宽度;如果当前宽度和值大于所述第一宽度,则确定当前目标元素的子界面区域行次序为第二行,将第二行确定为当前目标行次序,将当前目标元素的宽度确定为当前目标行次序的当前元素占用宽度;
将当前目标元素的下一次序的元素确定为当前目标元素;
将当前目标元素的宽度与当前元素占用宽度的和值确定为当前宽度和值,如果当前宽度和值不大于所述第一宽度,则确定当前目标元素的子界面区域行次序为当前目标行次序,将当前宽度和值确定为当前目标行次序的当前元素占用宽度;如果当前宽度和值大于所述第一宽度,则确定当前目标元素的子界面区域行次序为当前目标行次序的下一行次序,将当前目标行次序的下一行次序确定为当前目标行次序,将当前目标元素的宽度确定为当前目标行次序的当前元素占用宽度;
返回执行所述将当前目标元素的后一次序的元素确定为当前目标元素的步骤,直至处理完所有所述元素;
确定出最终的当前目标行次序,将最终的当前目标行次序对应的行数确定为所述总排列行数。
可选的,所述元素排列规则还包括:排列在同一行子界面区域且相邻的任两个所述元素之间的水平间距均为预设间距。
一种数据处理装置,包括:第一获得单元、第一确定单元和第二确定单元;其中:
所述第一获得单元,用于获得元素宽度组;其中,所述元素宽度组中包括至少一个元素的宽度,各所述元素均待排列在目标视图控件的视图界面中,各所述元素的高度均为第一高度;
所述第一确定单元,用于基于各所述元素的宽度以及预定义的元素排列规则,确定当在所述视图界面中对各所述元素进行横向排列时的总排列行数;所述元素排列规则至少包括:在所述视图界面中对各所述元素进行横向排列时,两两所述元素间均无重叠区域;
所述第二确定单元,用于将所述总排列行数与所述第一高度的乘积确定为所述视图界面的高度。
可选的,所述目标视图控件为collectionView;所述第一确定单元,用于基于各所述元素的宽度和所述元素排列规则,确定当在所述视图界面中的至少一行子界面区域中依次排列各所述元素时的总排列行数;各所述子界面区域的高度均为所述第一高度,各所述子界面区域的宽度均为预设的第一宽度。
可选的,所述第一确定单元,用于基于各所述元素的宽度,确定当按照自上而下、由左至右的排列次序,在各所述子界面区域中依次排列各所述元素时的总排列行数。
可选的,所述第一确定单元,用于:
将第二元素确定为当前目标元素,判断第一元素的元素宽度是否不小于所述第一宽度,如果是,则确定当前目标元素在所述视图界面中排列的子界面区域行次序为第二行,将第二行确定为当前目标行次序,将当前目标元素的宽度确定为当前目标行次序的当前元素占用宽度;其中,所述第一元素为所述元素宽度组中位置次序为第一位的宽度所对应的元素,所述第二元素为所述元素宽度组中位置次序为第二位的宽度所对应的元素;
否则,将所述第一元素与当前目标元素的宽度和值确定为当前宽度和值;如果当前宽度和值不大于所述第一宽度,则确定当前目标元素的子界面区域行次序为第一行,将第一行确定为当前目标行次序,将当前宽度和值确定为当前目标行次序的当前元素占用宽度;如果当前宽度和值大于所述第一宽度,则确定当前目标元素的子界面区域行次序为第二行,将第二行确定为当前目标行次序,将当前目标元素的宽度确定为当前目标行次序的当前元素占用宽度;
将当前目标元素的下一次序的元素确定为当前目标元素;
将当前目标元素的宽度与当前元素占用宽度的和值确定为当前宽度和值,如果当前宽度和值不大于所述第一宽度,则确定当前目标元素的子界面区域行次序为当前目标行次序,将当前宽度和值确定为当前目标行次序的当前元素占用宽度;如果当前宽度和值大于所述第一宽度,则确定当前目标元素的子界面区域行次序为当前目标行次序的下一行次序,将当前目标行次序的下一行次序确定为当前目标行次序,将当前目标元素的宽度确定为当前目标行次序的当前元素占用宽度;
返回执行所述将当前目标元素的后一次序的元素确定为当前目标元素的步骤,直至处理完所有所述元素;
确定出最终的当前目标行次序,将最终的当前目标行次序对应的行数确定为所述总排列行数。
可选的,所述元素排列规则还包括:排列在同一行子界面区域且相邻的任两个所述元素之间的水平间距均为预设间距。
本发明提出的数据处理方法及装置,可以获得元素宽度组;其中,元素宽度组中包括至少一个元素的宽度,各元素均待排列在目标视图控件的视图界面中,各元素的高度均为第一高度;基于各元素的宽度以及预定义的元素排列规则,确定当在视图界面中对各元素进行横向排列时的总排列行数;元素排列规则至少包括:在视图界面中对各元素进行横向排列时,两两元素间均无重叠区域;将总排列行数与第一高度的乘积确定为视图界面的高度。本发明可以无需真实的执行将元素在视图界面中进行排列,而仅基于各元素的宽度和元素排列规则,即可以确定各元素在视图界面中的总排列行数,能避免对其他业务的影响,避免延迟,提高高度获取效率,以及减少对元素进行真实排列所需消耗的资源。
上述说明仅是本发明技术方案的概述,为了能够更清楚地了解本发明的技术手段,可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1示出了本发明实施例提供的第一种数据处理方法的流程图;
图2示出了本发明实施例提供的第二种数据处理方法的流程图;
图3示出了本发明实施例提供的一种目标视图控件的视图界面;
图4示出了本发明实施例提供的一种目标视图控件的视图界面;
图5示出了本发明实施例提供的一种目标视图控件的视图界面;
图6示出了本发明实施例提供的一种目标视图控件的视图界面;
图7示出了本发明实施例提供的一种目标视图控件的视图界面;
图8示出了本发明实施例提供的一种目标视图控件的视图界面;
图9示出了本发明实施例提供的一种目标视图控件的视图界面;
图10示出了本发明实施例提供的一种数据处理装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
如图1所示,本实施例提出了第一种数据处理方法,该方法可以包括以下步骤:
S101、获得元素宽度组;其中,元素宽度组中包括至少一个元素的宽度,各元素均待排列在目标视图控件的视图界面中,各元素的高度均为第一高度;
其中,元素可以是排列在视图控件的视图界面中的元素。比如,在电子相册的视图界面中,每张照片均可以是一个元素。
具体的,元素宽度组可以是由多个元素的宽度经有序排列而构成的数组。需要说明的是,元素的数量即元素宽度组中的数据数量,可以由技术人员根据实际需求进行确定。
其中,目标视图控件可以是用于展示各元素布局及其元素内容的视图控件。比如,目标视图控件可以为collectionView;再比如,目标视图控件可以为ImageView。
可以理解的是,目标视图控件的视图界面可以是目标视图控件中用于布局元素和显示元素内容的界面。具体的,目标视图控件的视图界面的形状可以是正方形、长方形及其他多边形,如“凸”字形状的多边形,本发明对于目标视图控件的视图界面的形状类型不作限定。
需要说明的是,本发明可以在目标视图控件的视图界面中可以设置滚动视图和/或非滚动视图,之后在视图界面所设置的视图中布置元素,在视图界面中显示元素内容。
具体的,当目标视图控件的视图界面中设置的是非滚动视图,在视图界面中布置元素时,超出视图界面范围的元素内容可以使用省略号进行显示。
具体的,本实施例中各元素的高度可以是相同的,均可以为第一高度。其中,第一高度可以是技术人员根据实际情况所确定的高度,也可以是目标视图控件中的默认高度,本发明对此不作限定。
可选的,各元素的宽度可以是相同的。比如,各元素的宽度可以均为第一宽度;
可选的,各元素的宽度可以是不相同的。比如,第一元素的宽度可以为第二宽度,第二元素的宽度可以为与第二宽度不同的第三宽度,第三元素的宽度可以为与第二宽度、第三宽度均不相同的第四宽度。
S102、基于各元素的宽度以及预定义的元素排列规则,确定当在视图界面中对各元素进行横向排列时的总排列行数;元素排列规则至少包括:在视图界面中对各元素进行横向排列时,两两元素间均无重叠区域;
可选的,元素排列规则为各元素在视图界面中进行排列时需要遵循的规则。具体的,元素排列规则可以包括预先设置的在将各元素排列在视图界面时的排列次序,比如自上而下、由左至右的排列次序。
可选的,元素排列规则还包括:排列在同一行子界面区域且相邻的任两个元素之间的水平间距均为预设间距。其中,子界面区域可以为视图界面中的一行具有相应高度和宽度的区域,某行子界面区域的宽度即可以为视图界面在该行的宽度。
可选的,元素排列规则还可以包括指定的元素与界面边界的间距。
需要说明的是,本发明在确定各元素在视图界面中的总排列行数时,无需真实的执行将元素在视图界面中进行排列,而可以仅基于各元素的宽度和元素排列规则,来确定各元素在视图界面中的总排列行数。当然,本发明也可以真实的通过执行将各元素在视图界面中进行排列,来确定总排列行数的过程。
S103、将总排列行数与第一高度的乘积确定为视图界面的高度。
具体的,本发明可以在确定出总排列行数后,将总排列行数乘以第一高度,获得相应的乘积,并将该乘积确定为目标视图控件的视图界面的高度。
可以理解的是,本发明在通过未真实的将元素在视图界面中进行排列,而仅基于各元素的宽度和元素排列规则,来确定各元素在视图界面中的总排列行数时,可以在将各元素真实排列至视图界面之前,即可以确定出视图界面的高度,能有效提高对视图界面的高度的确定效率;且,本发明无需对元素进行真实排列即可以确定视图界面的高度的方式,能减少对元素进行真实排列所需的资源。
需要说明的是,现有技术在获取视图控件的视图界面的高度的过程中,存在延迟以及影响其他业务执行的问题。为更好的说明现有技术所存在的问题,下述以CollectionView为例进行说明。
具体的,现有技术在应用CollectionView时,在配置完成视图控件的布局参数和数据后,需要调用系统方法reloadData对视图控件进行布局。在视图控件的位置和内容确定后,现有技术可以通过系统提供的属性collectionView.collectionViewLayout.collectionViewContentSize.height,来获得视图控件的视图界面的高度。此时,现有技术实现对视图界面的高度的获取,依赖于reloadData方法。而reloadData方法是用于刷新视图控件的布局和内容,其在主线程中进行,reloadData操作可能会影响主线程对于其他业务的执行,即在获取高度时会影响其他业务的执行;另,在普通VC中,在viewDidLoad时机需要生成控件、完成控件之间的约束和请求接口,在接口返回数据成功回调中刷新控件的布局和内容,系统提供的方法在reloadData完成之后布局VC的控件,在老旧的机器上会闪烁,因为此时VC的view已经经历ViewdidAppear的生命周期完全显示了。而reloadData的操作iOS系统会在下一圈runloop进行。也就是当前runloop不能获取collectionView高度,延迟了获取的时机。
而本发明通过图1所示方法,可以无需执行reloadData方法,避免对其他业务的影响,同时可以避免延迟,提高高度获取效率。
本实施例提出的数据处理方法,可以获得元素宽度组;其中,元素宽度组中包括至少一个元素的宽度,各元素均待排列在目标视图控件的视图界面中,各元素的高度均为第一高度;基于各元素的宽度以及预定义的元素排列规则,确定当在视图界面中对各元素进行横向排列时的总排列行数;元素排列规则至少包括:在视图界面中对各元素进行横向排列时,两两元素间均无重叠区域;将总排列行数与第一高度的乘积确定为视图界面的高度。本发明可以无需真实的执行将元素在视图界面中进行排列,而仅基于各元素的宽度和元素排列规则,即可以确定各元素在视图界面中的总排列行数,能避免对其他业务的影响,避免延迟,提高高度获取效率,以及减少对元素进行真实排列所需消耗的资源。
基于图1,如图2所示,本实施例提出第二种数据处理方法。在该方法中,目标视图控件为collectionView;此时,上述步骤S102可以具体为步骤S201,其中:
S201、基于各元素的宽度和元素排列规则,确定当在视图界面中的至少一行子界面区域中依次排列各元素时的总排列行数;各子界面区域的高度均为第一高度,各子界面区域的宽度均为第一宽度。
具体的,子界面区域均是视图界面中的一行高度为第一高度的区域,各行子界面区域的宽度可以是相同的,即均可以为第一宽度。可以理解的是,各子界面区域的宽度即第一宽度不大于视图界面的宽度。
需要说明的是,第一宽度可以是由技术人员根据实际需求进行确定,本发明对此不作限定。
具体的,本发明可以按照各元素的宽度和元素排列规则,将各元素排列在各子界面区域中,确定各元素在视图界面中的总排列行数,即子界面区域的总行数。
具体的,本发明也可以无需真实的对各元素进行排列,而可以基于各元素的宽度和元素排列规则,确定各元素在视图界面中的总排列行数。
可选的,在本实施例提出的其他数据处理方法中,上述步骤S201可以包括步骤S301,其中:
S301、基于各元素的宽度,确定当按照自上而下、由左至右的排列次序,在各子界面区域中依次排列各元素时的总排列行数。
具体的,元素排列规则可以是包括自上而下、由左至右的排列次序。为更好的说明该排列次序,本发明提出并结合图3所示的视图界面进行举例说明。如图3所示,在依次对元素1、元素2……元素9进行排列时,本发明可以先行在视图界面中的最上部的最左边位置排列元素1,之后在元素1的右边排列元素2,在元素2的右侧排列元素3,当元素1所在行区域已排满元素时,可以在下一行继续的由左至右排列其他元素,直至排列完所有元素。
可选的,在本实施例提出的第三种数据处理方法中,上述步骤S301可以包括:
将第二元素确定为当前目标元素,判断第一元素的元素宽度是否不小于第一宽度,如果是,则确定当前目标元素在视图界面中排列的子界面区域行次序为第二行,将第二行确定为当前目标行次序,将当前目标元素的宽度确定为当前目标行次序的当前元素占用宽度;其中,第一元素为元素宽度组中位置次序为第一位的宽度所对应的元素,第二元素为元素宽度组中位置次序为第二位的宽度所对应的元素;
否则,将第一元素与当前目标元素的宽度和值确定为当前宽度和值;如果当前宽度和值不大于第一宽度,则确定当前目标元素的子界面区域行次序为第一行,将第一行确定为当前目标行次序,将当前宽度和值确定为当前目标行次序的当前元素占用宽度;如果当前宽度和值大于第一宽度,则确定当前目标元素的子界面区域行次序为第二行,将第二行确定为当前目标行次序,将当前目标元素的宽度确定为当前目标行次序的当前元素占用宽度;
将当前目标元素的下一次序的元素确定为当前目标元素;
将当前目标元素的宽度与当前元素占用宽度的和值确定为当前宽度和值,如果当前宽度和值不大于第一宽度,则确定当前目标元素的子界面区域行次序为当前目标行次序,将当前宽度和值确定为当前目标行次序的当前元素占用宽度;如果当前宽度和值大于第一宽度,则确定当前目标元素的子界面区域行次序为当前目标行次序的下一行次序,将当前目标行次序的下一行次序确定为当前目标行次序,将当前目标元素的宽度确定为当前目标行次序的当前元素占用宽度;
返回执行将当前目标元素的后一次序的元素确定为当前目标元素的步骤,直至处理完所有元素;
确定出最终的当前目标行次序,将最终的当前目标行次序对应的行数确定为总排列行数。
需要说明的是,本发明可以先行确定待排列的所有元素,并按照一定次序,将各元素的宽度依次保存至元素宽度组中;之后,本发明可以按照元素宽度组中各宽度的排列次序,依次对元素宽度组中的各宽度进行处理,如先对元素宽度组中排序第一的宽度进行处理,之后对排序第二的宽度进行处理,直至处理完所有的宽度。
其中,第一元素即为元素宽度组中排序第一的宽度所对应的元素,第二元素即为元素宽度组中排序第二的宽度所对应的元素。
具体的,本发明可以无需真实的执行元素排列,而仅基于各元素的宽度和元素排列规则,对各元素进行模拟排列,即可以确定出各元素的总排列行数。可以理解的是,本发明对某个元素的宽度进行处理,即对该元素进行模拟排列。
具体的,无论第一元素的宽度是否大于视图界面的宽度,本发明均可以将第一元素模拟排列在第一行子界面区域。当第一元素的宽度不大于第一宽度时,第一元素的元素内容可以在视图界面中全量显示;当第一元素的宽度大于第一宽度时,第一元素中超出第一宽度的部分可以使用省略号进行标识。
具体的,当第一元素的宽度不小于第一宽度时,本发明可以无需再考虑在第一行子界面区域中布置第二元素,而可以直接将第二元素排列在第二行子界面区域中(如图4所示);
当第一元素的宽度小于第一宽度时,本发明可以计算第一元素与第二元素的宽度和值,如果该宽度和值不大于第一宽度,则说明第一行子界面区域中可以同时容纳第一元素和第二元素,此时本发明可以将第二元素排列在第一行子界面区域中的第一元素的右侧(如图5所示);如果该宽度和值大于第一宽度,则说明第一行子界面区域不能再放置第二元素,此时本发明可以将第二元素排列在第二行子界面区域中(如图6所示)。
其中,本发明在处理完一个元素的宽度,即将该元素排列在某行子界面区域后,可以记录该行子界面区域中的当前元素占用宽度,即已排列在该行子界面区域中的各元素的宽度和值;如果该宽度和值等于第一宽度,则本发明在对下一元素的宽度进行处理时,可以直接在下一行子界面区域中进行布置;如果该宽度和值小于第一宽度,则本发明在对下一元素的宽度进行处理时,可以先行将该下一元素的宽度与该宽度和值进行相加,确定相加结果是否不大于第一高度,如果不大于,则可以说明该下一元素可以继续放置到当前行子界面区域,如果大于,则本发明可以将该下一元素放置到下一行子界面区域中。
比如,本发明在已将第一元素和第二元素排列在第一行子界面区域中时,可以记录第一行子界面区域中的元素占用宽度A,如果A等于第一宽度,则本发明在处理第三元素的宽度时,可以直接将第三元素排列在第二行子界面区域中,如图7所示;
如果A小于第一宽度,则本发明在处理第三元素的宽度时,可以先行将第三元素的宽度与A相加,获得B,确定B是否大于第一宽度,如果B不大于第一宽度,则可以将第三元素继续放置到第一行子界面区域中,如图8所示;如果B大于第一宽度,则可以将第三元素放置到第二行子界面区域中,如图9所示。
可以理解的是,本发明可以按照上述对元素宽度的处理方式,依次对元素宽度组中各元素进行处理,将所有元素模拟排列完毕,根据记录的当前目标行次序,即可以确定出总排列行数。
可选的,本发明在对各元素进行模拟排列的过程中,也可以考虑元素间距和元素与视图界面边界的间距等参数。
需要说明的是,本发明通过上述步骤S201或S301,可以有效完成对各元素宽度的处理,在视图界面中模拟排列各元素,确定出各元素在视图界面中的总排列行数,从而有效保障高度确定的实现及其效率的提高。
本实施例提出的数据处理方法,可以有效完成对各元素宽度的处理,在视图界面中模拟排列各元素,确定出各元素在视图界面中的总排列行数,从而有效保障高度确定的实现及其效率的提高。
与图1所示方法相对应,如图10所示,本实施例提出一种数据处理装置,该装置可以包括:第一获得单元101、第一确定单元102和第二确定单元103;其中:第一获得单元101,用于获得元素宽度组;其中,元素宽度组中包括至少一个元素的宽度,各元素均待排列在目标视图控件的视图界面中,各元素的高度均为第一高度;
第一确定单元102,用于基于各元素的宽度以及预定义的元素排列规则,确定当在视图界面中对各元素进行横向排列时的总排列行数;元素排列规则至少包括:在视图界面中对各元素进行横向排列时,两两元素间均无重叠区域;
第二确定单元103,用于将总排列行数与第一高度的乘积确定为视图界面的高度。
需要说明的是,第一获得单元101、第一确定单元102和第二确定单元103的具体处理过程及其带来的技术效果,可以参照本实施例关于图1所示步骤S101、S102和S103的相关说明。
可选的,目标视图控件为collectionView;第一确定单元102,用于基于各元素的宽度和元素排列规则,确定当在视图界面中的至少一行子界面区域中依次排列各元素时的总排列行数;各子界面区域的高度均为第一高度,各子界面区域的宽度均为预设的第一宽度。
可选的,第一确定单元102,用于基于各元素的宽度,确定当按照自上而下、由左至右的排列次序,在各子界面区域中依次排列各元素时的总排列行数。
可选的,第一确定单元102,用于:
将第二元素确定为当前目标元素,判断第一元素的元素宽度是否不小于第一宽度,如果是,则确定当前目标元素在视图界面中排列的子界面区域行次序为第二行,将第二行确定为当前目标行次序,将当前目标元素的宽度确定为当前目标行次序的当前元素占用宽度;其中,第一元素为元素宽度组中位置次序为第一位的宽度所对应的元素,第二元素为元素宽度组中位置次序为第二位的宽度所对应的元素;
否则,将第一元素与当前目标元素的宽度和值确定为当前宽度和值;如果当前宽度和值不大于第一宽度,则确定当前目标元素的子界面区域行次序为第一行,将第一行确定为当前目标行次序,将当前宽度和值确定为当前目标行次序的当前元素占用宽度;如果当前宽度和值大于第一宽度,则确定当前目标元素的子界面区域行次序为第二行,将第二行确定为当前目标行次序,将当前目标元素的宽度确定为当前目标行次序的当前元素占用宽度;
将当前目标元素的下一次序的元素确定为当前目标元素;
将当前目标元素的宽度与当前元素占用宽度的和值确定为当前宽度和值,如果当前宽度和值不大于第一宽度,则确定当前目标元素的子界面区域行次序为当前目标行次序,将当前宽度和值确定为当前目标行次序的当前元素占用宽度;如果当前宽度和值大于第一宽度,则确定当前目标元素的子界面区域行次序为当前目标行次序的下一行次序,将当前目标行次序的下一行次序确定为当前目标行次序,将当前目标元素的宽度确定为当前目标行次序的当前元素占用宽度;
返回执行将当前目标元素的后一次序的元素确定为当前目标元素的步骤,直至处理完所有元素;
确定出最终的当前目标行次序,将最终的当前目标行次序对应的行数确定为总排列行数。
可选的,元素排列规则还包括:排列在同一行子界面区域且相邻的任两个元素之间的水平间距均为预设间距。
本实施例提出的数据处理装置,可以获得元素宽度组;其中,元素宽度组中包括至少一个元素的宽度,各元素均待排列在目标视图控件的视图界面中,各元素的高度均为第一高度;基于各元素的宽度以及预定义的元素排列规则,确定当在视图界面中对各元素进行横向排列时的总排列行数;元素排列规则至少包括:在视图界面中对各元素进行横向排列时,两两元素间均无重叠区域;将总排列行数与第一高度的乘积确定为视图界面的高度。本发明可以无需真实的执行将元素在视图界面中进行排列,而仅基于各元素的宽度和元素排列规则,即可以确定各元素在视图界面中的总排列行数,能避免对其他业务的影响,避免延迟,提高高度获取效率,以及减少对元素进行真实排列所需消耗的资源。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种数据处理方法,其特征在于,适用于安装有IOS系统的智能终端,所述方法包括:
获得元素宽度组;其中,所述元素宽度组中包括至少一个元素的宽度,各所述元素均待排列在目标视图控件的视图界面中,各所述元素的高度均为第一高度;所述元素宽度组是由多个元素的宽度经有序排列而构成的数组;所述目标视图控件为collectionView;
基于各所述元素的宽度以及预定义的元素排列规则依序对各元素进行模拟排列,确定当在所述视图界面中对各所述元素进行横向排列时的总排列行数;所述元素排列规则至少包括:在所述视图界面中对各所述元素进行横向排列时,两两所述元素间均无重叠区域;其中,在对每一元素进行模拟排列时,基于各所述元素的宽度以及预定义的元素排列规则分别确定每个元素在模拟排列时是否需要换行排列,当确定需要换行排列时,将上一元素对应的行次序加1得到当前元素的行次序,若是不需要换行排列,则将上一元素的行次序作为当前元素的行次序;在所有元素的模拟排列完成后,将最后一个元素的行次序作为总排列行数;
将所述总排列行数与所述第一高度的乘积确定为所述视图界面的高度。
2.根据权利要求1所述的数据处理方法,其特征在于,所述目标视图控件为collectionView;所述基于各所述元素的宽度以及预定义的元素排列规则,确定当在所述视图界面中对各所述元素进行横向排列时的总排列行数,包括:
基于各所述元素的宽度和所述元素排列规则,确定当在所述视图界面中的至少一行子界面区域中依次排列各所述元素时的总排列行数;各所述子界面区域的高度均为所述第一高度,各所述子界面区域的宽度均为预设的第一宽度。
3.根据权利要求2所述的数据处理方法,其特征在于,所述基于各所述元素的宽度和所述元素排列规则,确定当在所述视图界面中的至少一行子界面区域中依次排列各所述元素时的总排列行数,包括:
基于各所述元素的宽度,确定当按照自上而下、由左至右的排列次序,在各所述子界面区域中依次排列各所述元素时的总排列行数。
4.根据权利要求3所述的数据处理方法,其特征在于,所述基于各所述元素的宽度,确定当按照自上而下、由左至右的排列次序,在各所述子界面区域中依次排列各所述元素时的总排列行数,包括:
将第二元素确定为当前目标元素,判断第一元素的元素宽度是否不小于所述第一宽度,如果是,则确定当前目标元素在所述视图界面中排列的子界面区域行次序为第二行,将第二行确定为当前目标行次序,将当前目标元素的宽度确定为当前目标行次序的当前元素占用宽度;其中,所述第一元素为所述元素宽度组中位置次序为第一位的宽度所对应的元素,所述第二元素为所述元素宽度组中位置次序为第二位的宽度所对应的元素;
否则,将所述第一元素与当前目标元素的宽度和值确定为当前宽度和值;如果当前宽度和值不大于所述第一宽度,则确定当前目标元素的子界面区域行次序为第一行,将第一行确定为当前目标行次序,将当前宽度和值确定为当前目标行次序的当前元素占用宽度;如果当前宽度和值大于所述第一宽度,则确定当前目标元素的子界面区域行次序为第二行,将第二行确定为当前目标行次序,将当前目标元素的宽度确定为当前目标行次序的当前元素占用宽度;
将当前目标元素的下一次序的元素确定为当前目标元素;
将当前目标元素的宽度与当前元素占用宽度的和值确定为当前宽度和值,如果当前宽度和值不大于所述第一宽度,则确定当前目标元素的子界面区域行次序为当前目标行次序,将当前宽度和值确定为当前目标行次序的当前元素占用宽度;如果当前宽度和值大于所述第一宽度,则确定当前目标元素的子界面区域行次序为当前目标行次序的下一行次序,将当前目标行次序的下一行次序确定为当前目标行次序,将当前目标元素的宽度确定为当前目标行次序的当前元素占用宽度;
返回执行所述将当前目标元素的后一次序的元素确定为当前目标元素的步骤,直至处理完所有所述元素;
确定出最终的当前目标行次序,将最终的当前目标行次序对应的行数确定为所述总排列行数。
5.根据权利要求1所述的数据处理方法,其特征在于,所述元素排列规则还包括:排列在同一行子界面区域且相邻的任两个所述元素之间的水平间距均为预设间距。
6.一种数据处理装置,其特征在于,适用于安装有IOS系统的智能终端,所述装置包括:第一获得单元、第一确定单元和第二确定单元;其中:
所述第一获得单元,用于获得元素宽度组;其中,所述元素宽度组中包括至少一个元素的宽度,各所述元素均待排列在目标视图控件的视图界面中,各所述元素的高度均为第一高度;所述元素宽度组是由多个元素的宽度经有序排列而构成的数组;所述目标视图控件为collectionView;
所述第一确定单元,用于基于各所述元素的宽度以及预定义的元素排列规则对各元素进行模拟排列,确定当在所述视图界面中对各所述元素进行横向排列时的总排列行数;所述元素排列规则至少包括:在所述视图界面中对各所述元素进行横向排列时,两两所述元素间均无重叠区域;其中,在对各元素进行模拟排列时,基于各所述元素的宽度以及预定义的元素排列规则分别确定每个元素在模拟排列时是否需要换行排列,当确定需要换行排列时,将上一元素对应的行次序加1得到当前元素的行次序,若是不需要换行排列,则将上一元素的行次序作为当前元素的行次序;在所有元素的模拟排列完成后,将最后一个元素的行次序作为总排列行数;
所述第二确定单元,用于将所述总排列行数与所述第一高度的乘积确定为所述视图界面的高度。
7.根据权利要求6所述的数据处理装置,其特征在于,所述目标视图控件为collectionView;所述第一确定单元,用于基于各所述元素的宽度和所述元素排列规则,确定当在所述视图界面中的至少一行子界面区域中依次排列各所述元素时的总排列行数;各所述子界面区域的高度均为所述第一高度,各所述子界面区域的宽度均为预设的第一宽度。
8.根据权利要求7所述的数据处理装置,其特征在于,所述第一确定单元,用于基于各所述元素的宽度,确定当按照自上而下、由左至右的排列次序,在各所述子界面区域中依次排列各所述元素时的总排列行数。
9.根据权利要求8所述的数据处理装置,其特征在于,所述第一确定单元,用于:
将第二元素确定为当前目标元素,判断第一元素的元素宽度是否不小于所述第一宽度,如果是,则确定当前目标元素在所述视图界面中排列的子界面区域行次序为第二行,将第二行确定为当前目标行次序,将当前目标元素的宽度确定为当前目标行次序的当前元素占用宽度;其中,所述第一元素为所述元素宽度组中位置次序为第一位的宽度所对应的元素,所述第二元素为所述元素宽度组中位置次序为第二位的宽度所对应的元素;
否则,将所述第一元素与当前目标元素的宽度和值确定为当前宽度和值;如果当前宽度和值不大于所述第一宽度,则确定当前目标元素的子界面区域行次序为第一行,将第一行确定为当前目标行次序,将当前宽度和值确定为当前目标行次序的当前元素占用宽度;如果当前宽度和值大于所述第一宽度,则确定当前目标元素的子界面区域行次序为第二行,将第二行确定为当前目标行次序,将当前目标元素的宽度确定为当前目标行次序的当前元素占用宽度;
将当前目标元素的下一次序的元素确定为当前目标元素;
将当前目标元素的宽度与当前元素占用宽度的和值确定为当前宽度和值,如果当前宽度和值不大于所述第一宽度,则确定当前目标元素的子界面区域行次序为当前目标行次序,将当前宽度和值确定为当前目标行次序的当前元素占用宽度;如果当前宽度和值大于所述第一宽度,则确定当前目标元素的子界面区域行次序为当前目标行次序的下一行次序,将当前目标行次序的下一行次序确定为当前目标行次序,将当前目标元素的宽度确定为当前目标行次序的当前元素占用宽度;
返回执行所述将当前目标元素的后一次序的元素确定为当前目标元素的步骤,直至处理完所有所述元素;
确定出最终的当前目标行次序,将最终的当前目标行次序对应的行数确定为所述总排列行数。
10.根据权利要求8所述的数据处理装置,其特征在于,所述元素排列规则还包括:排列在同一行子界面区域且相邻的任两个所述元素之间的水平间距均为预设间距。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210512594.9A CN114721620B (zh) | 2022-05-12 | 2022-05-12 | 一种数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210512594.9A CN114721620B (zh) | 2022-05-12 | 2022-05-12 | 一种数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114721620A CN114721620A (zh) | 2022-07-08 |
CN114721620B true CN114721620B (zh) | 2022-09-20 |
Family
ID=82231193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210512594.9A Active CN114721620B (zh) | 2022-05-12 | 2022-05-12 | 一种数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114721620B (zh) |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4707946B2 (ja) * | 2003-11-11 | 2011-06-22 | 豊和工業株式会社 | 工程シミュレーションシステム |
CN102929603B (zh) * | 2012-09-28 | 2015-04-15 | 用友软件股份有限公司 | 界面控件布局装置和界面控件布局方法 |
CN107391465B (zh) * | 2017-07-26 | 2021-07-16 | 郑州云海信息技术有限公司 | 一种以元素团形式定位树状图底层元素的方法及装置 |
CN109697264B (zh) * | 2017-10-23 | 2023-04-07 | 腾讯科技(深圳)有限公司 | 页面元素的布置方法、装置、计算设备及存储介质 |
CN108958861A (zh) * | 2018-06-14 | 2018-12-07 | 广州视源电子科技股份有限公司 | 基于文本控件的对象显示方法、设备及存储介质 |
CN109753333B (zh) * | 2019-01-11 | 2022-07-08 | 广州视源电子科技股份有限公司 | 一种界面布局方法、装置、设备及介质 |
CN112114912A (zh) * | 2019-06-19 | 2020-12-22 | 华为技术有限公司 | 一种用户界面布局方法及电子设备 |
CN113495730A (zh) * | 2020-03-20 | 2021-10-12 | 北京沃东天骏信息技术有限公司 | 资源包的生成及解析方法和装置 |
CN111581570B (zh) * | 2020-04-01 | 2023-05-30 | 车智互联(北京)科技有限公司 | 一种页面布局方法及计算设备 |
CN112099887B (zh) * | 2020-08-21 | 2021-12-17 | 完美世界(重庆)互动科技有限公司 | 界面调整方法、装置、计算机设备及计算机可读存储介质 |
CN114327449A (zh) * | 2021-11-24 | 2022-04-12 | 云南腾云信息产业有限公司 | 页面展示方法、系统和计算机设备 |
-
2022
- 2022-05-12 CN CN202210512594.9A patent/CN114721620B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114721620A (zh) | 2022-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110096691A (zh) | 基于电子书的排版方法、电子设备及计算机存储介质 | |
CN111597768B (zh) | 用于构建版图图案集的方法、设备和计算机可读存储介质 | |
JP4993362B2 (ja) | 半導体集積回路の自動遅延調整方法 | |
EP3805917A1 (en) | Upgrade method and device | |
CN111857704A (zh) | 一种布局关系的代码生成方法及装置 | |
CN111932257A (zh) | 一种区块链并行化处理方法及装置 | |
CN114721620B (zh) | 一种数据处理方法及装置 | |
US20140129916A1 (en) | Evaluation of resizing capability of web browser | |
CN109033545B (zh) | 一种根据像素阵列的定义快速生成像素版图的方法 | |
CN110175414B (zh) | 一种pcb设计中的零件摆放方法及工具 | |
CN110633111A (zh) | 一种加快应用界面加载速度的方法及装置 | |
CN113747193A (zh) | 资源处理方法、装置及服务器 | |
CN110263310B (zh) | 数据图生成方法、装置及计算机可读存储介质 | |
JP2008143663A (ja) | 積込順序決定装置、積込順序決定方法、及び積込順序決定プログラム | |
CN115270710A (zh) | 排版方法、排版装置 | |
JP2002217300A (ja) | セル配置方法 | |
CN112800358B (zh) | 一种背景区域生成方法、装置、电子设备及存储介质 | |
CN111831664B (zh) | 一种地图数据更新方法及装置 | |
CN110727600B (zh) | 一种自动化测试方法、终端、电子设备及可读存储介质 | |
CN117010322B (zh) | 标准单元的检查方法、装置及设备 | |
CN111914512B (zh) | 基于电子书横屏双翻模式的显示方法及阅读设备 | |
JP7139552B2 (ja) | 半導体集積回路の配線設計装置及び半導体集積回路の配線設計用プログラム | |
CN113486621B (zh) | 像素电路的设计方法、装置、控制器及存储介质 | |
CN115577202A (zh) | 一种基于栅格布局系统的板块定点添加方法及装置 | |
JP3047851B2 (ja) | 図形の寸法値表示装置及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |