CN113051012B - 基于列表视图的数据加载方法、装置、设备及介质 - Google Patents
基于列表视图的数据加载方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN113051012B CN113051012B CN202110292140.0A CN202110292140A CN113051012B CN 113051012 B CN113051012 B CN 113051012B CN 202110292140 A CN202110292140 A CN 202110292140A CN 113051012 B CN113051012 B CN 113051012B
- Authority
- CN
- China
- Prior art keywords
- loaded
- data
- content unit
- uitableview
- layout object
- 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
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及人工智能技术领域,揭示了一种基于列表视图的数据加载方法、装置、设备及介质,其中方法包括:根据待加载的内容单元标识集合从数组容器中获取布局对象得到待加载的布局对象集合;分别根据所述待加载的布局对象集合中的每个所述待加载的布局对象进行内容单元加载得到所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的目标内容单元;采用内容单元位置数据对所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的所述目标内容单元进行展示,得到目标UITableView。避免每次UITableView滑入滑出显示屏时对内容单元进行重新计算和重新布局,减少了对性能消耗。
Description
技术领域
本申请涉及到人工智能技术领域,特别是涉及到一种基于列表视图的数据加载方法、装置、设备及介质。
背景技术
目前在iOS(苹果公司开发的移动操作系统)APP(手机软件)中都会用到各种各样的UITableView(列表视图)来展示大量的数据,UITableView的性能严重影响整个APP的性能。现有技术对UITableView的性能优化主要集中在cell(内容单元)复用、图片加载优化、子控件的创建销毁、避免离屏渲染、缓存cell高度,但是在加载大量数据时布局计算对性能消耗仍然比较大。
发明内容
本申请的主要目的为提供一种基于列表视图的数据加载方法、装置、设备及介质,旨在解决现有技术的iOS APP中的UITableView的在加载大量数据时布局计算对性能消耗仍然比较大的技术问题。
为了实现上述发明目的,本申请提出一种基于列表视图的数据加载方法,所述方法包括:
获取UITableView加载数据请求,所述UITableView加载数据请求携带有待加载的UITableView标识;
根据所述待加载的UITableView标识获取待加载的UITableView配置数据;
分别根据所述待加载的UITableView配置数据的待加载的内容单元标识集合中的每个待加载的内容单元标识,从数组容器中获取布局对象,得到待加载的布局对象集合,所述待加载的布局对象集合中的待加载的布局对象包括:属性数据、数据源子对象,所述属性数据包括:数据源属性、控件属性、内容单元高度属性,所述数据源属性引用所述数据源子对象;
分别根据所述待加载的布局对象集合中的每个所述待加载的布局对象进行内容单元加载,得到所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的目标内容单元;
采用所述待加载的UITableView配置数据的内容单元位置数据,对所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的所述目标内容单元,在所述待加载的UITableView标识对应的UITableView中进行展示,得到目标UITableView。
进一步的,所述分别根据所述待加载的UITableView配置数据的待加载的内容单元标识集合中的每个待加载的内容单元标识,从数组容器中获取布局对象,得到待加载的布局对象集合的步骤之前,还包括:
获取数据源更新请求,所述数据源更新请求携带有待更新的数据;
响应所述数据源更新请求,分别根据所述待更新的数据进行每个内容单元的布局对象创建,得到待更新的布局对象集合;
根据所述待更新的布局对象集合更新所述数组容器。
进一步的,所述分别根据所述待更新的数据进行每个内容单元的布局对象创建,得到待更新的布局对象集合的步骤,包括:
从所述待更新的数据中获取一个内容单元的数据,得到待解析的内容单元数据;
根据所述待解析的内容单元数据进行数据源子对象创建,得到所述待解析的内容单元数据对应的待更新的数据源子对象;
根据所述待解析的内容单元数据对应的所述待更新的数据源子对象进行布局对象创建,得到所述待解析的内容单元数据对应的待更新的布局对象;
重复执行所述从所述待更新的数据中获取一个内容单元的数据,得到待解析的内容单元数据的步骤,直至确定所述待更新的数据对应的所有所述待更新的布局对象;
根据所有所述待更新的布局对象,得到所述待更新的布局对象集合。
进一步的,所述根据所述待解析的内容单元数据对应的所述待更新的数据源子对象进行布局对象创建,得到所述待解析的内容单元数据对应的待更新的布局对象的步骤,包括:
根据所述待解析的内容单元数据对应的所述待更新的数据源子对象的对象名称,确定所述待解析的内容单元数据对应的所述待更新的布局对象的所述数据源属性;
分别根据所述待解析的内容单元数据对应的所述待更新的数据源子对象中的每个数据值创建一个控件属性,得到所述待解析的内容单元数据对应的所述待更新的数据源子对象对应的待赋值的控件属性集合;
分别根据所述待解析的内容单元数据对应的所述待更新的数据源子对象中的每个数据值进行控件尺寸计算,得到所述待解析的内容单元数据对应的所述待更新的数据源子对象的各个数据值各自对应的控件尺寸数据;
采用所述待解析的内容单元数据对应的所述待更新的数据源子对象的各个所述数据值各自对应的所述控件尺寸数据,对所述待解析的内容单元数据对应的所述待更新的数据源子对象对应的所述待赋值的控件属性集合进行赋值,得到所述待解析的内容单元数据对应的所述待更新的布局对象的所述控件属性;
获取控件边距数据,根据所述控件边距数据和所述待解析的内容单元数据对应的所述待更新的布局对象的所述控件属性进行内容单元高度计算,得到所述待解析的内容单元数据对应的所述待更新的布局对象的所述内容单元高度属性。
进一步的,所述分别根据所述待加载的布局对象集合中的每个所述待加载的布局对象进行内容单元加载,得到所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的目标内容单元的步骤,包括:
分别根据所述待加载的布局对象集合中的每个所述待加载的布局对象的所述内容单元高度属性进行内容单元高度设置,得到所述待加载的布局对象集合中的各个所述待加载的布局对象各自对应的待加载内容的内容单元;
根据所述待加载的布局对象集合中的每个所述待加载的布局对象的所述控件属性,分别对每个所述待加载内容的内容单元进行控件设置,得到所述待加载的布局对象集合中的各个所述待加载的布局对象各自对应的所述待加载内容的内容单元对应的待加载内容的控件集合;
根据所述待加载的布局对象集合中的每个所述待加载的布局对象的所述数据源属性,分别对每个所述待加载内容的控件集合中的每个待加载内容的控件进行内容加载,得到所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的所述目标内容单元。
进一步的,所述采用所述待加载的UITableView配置数据的内容单元位置数据,对所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的所述目标内容单元,在所述待加载的UITableView标识对应的UITableView中进行展示,得到目标UITableView的步骤,包括:
从所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的所述目标内容单元中提取一个所述目标内容单元,得到待展示的目标内容单元;
根据所述待展示的目标内容单元,从所述待加载的UITableView配置数据的内容单元位置数据中获取位置数据,得到所述待展示的目标内容单元对应的待展示的位置数据;
采用所述待展示的目标内容单元对应的所述待展示的位置数据,将所述待展示的目标内容单元,在所述待加载的UITableView标识对应的UITableView中进行展示;
重复执行所述从所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的所述目标内容单元中提取一个所述目标内容单元,得到待展示的目标内容单元的步骤,直至完成所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的所述目标内容单元的展示;
将所述待加载的UITableView标识对应的UITableView,作为所述目标UITableView。
进一步的,所述采用所述待加载的UITableView配置数据的内容单元位置数据,对所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的所述目标内容单元,在所述待加载的UITableView标识对应的UITableView中进行展示,得到目标UITableView的步骤之后,包括:
获取对所述目标UITableView的数据变更请求,所述数据变更请求携带有待变更的数据;
分别根据所述待变更的数据进行每个内容单元的布局对象创建,得到所述目标UITableView的待变更的布局对象集合;
根据所述目标UITableView的所述待变更的布局对象集合更新所述数组容器;
分别根据所述数组容器中的所述待变更的布局对象集合中的每个待变更的布局对象进行内容单元加载,得到所述目标UITableView的所述待变更的布局对象集合中的各个所述待变更的布局对象各自对应的待变更的目标内容单元;
根据所述目标UITableView的所述待变更的布局对象集合中的各个所述待变更的布局对象各自对应的所述待变更的目标内容单元,对所述目标UITableView进行刷新展示,得到刷新后的目标UITableView。
本申请还提出了一种基于列表视图的数据加载装置,所述装置包括:
请求获取模块,用于获取UITableView加载数据请求,所述UITableView加载数据请求携带有待加载的UITableView标识;
配置数据获取模块,用于根据所述待加载的UITableView标识获取待加载的UITableView配置数据;
布局对象获取模块,用于分别根据所述待加载的UITableView配置数据的待加载的内容单元标识集合中的每个待加载的内容单元标识,从数组容器中获取布局对象,得到待加载的布局对象集合,所述待加载的布局对象集合中的待加载的布局对象包括:属性数据、数据源子对象,所述属性数据包括:数据源属性、控件属性、内容单元高度属性,所述数据源属性引用所述数据源子对象;
内容单元加载模块,用于分别根据所述待加载的布局对象集合中的每个所述待加载的布局对象进行内容单元加载,得到所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的目标内容单元;
展示模块,用于采用所述待加载的UITableView配置数据的内容单元位置数据,对所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的所述目标内容单元,在所述待加载的UITableView标识对应的UITableView中进行展示,得到目标UITableView。
本申请还提出了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请还提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
本申请的基于列表视图的数据加载方法、装置、设备及介质,通过分别根据待加载的UITableView配置数据的待加载的内容单元标识集合中的每个待加载的内容单元标识,从数组容器中获取布局对象,得到待加载的布局对象集合,待加载的布局对象集合中的待加载的布局对象包括:属性数据、数据源子对象,属性数据包括:数据源属性、控件属性、内容单元高度属性,数据源属性引用数据源子对象,分别根据待加载的布局对象集合中的每个待加载的布局对象进行内容单元加载,得到待加载的内容单元标识集合中的各个待加载的内容单元标识各自对应的目标内容单元,采用待加载的UITableView配置数据的内容单元位置数据,对待加载的内容单元标识集合中的各个待加载的内容单元标识各自对应的目标内容单元,在待加载的UITableView标识对应的UITableView中进行展示,得到目标UITableView,通过提前创建布局对象并存储到数组容器中,避免每次UITableView滑入滑出显示屏时对内容单元进行重新计算和重新布局,减少了UITableView在加载大量数据时对性能消耗,提高了UITableView的显示速度,提高了用户体验。
附图说明
图1为本申请一实施例的基于列表视图的数据加载方法的流程示意图;
图2为本申请一实施例的基于列表视图的数据加载装置的结构示意框图;
图3为本申请一实施例的计算机设备的结构示意框图。
本申请目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
为了解决现有技术的iOS APP中的UITableView的在加载大量数据时布局计算对性能消耗仍然比较大的技术问题,本申请提出了基于列表视图的数据加载方法,所述方法应用于人工智能技术领域。所述基于列表视图的数据加载方法通过在创建数据解析对象时,创建布局对象和布局对象引用的数据源子对象,将布局对象和布局对象引用的数据源子对象更新数组容器,在UITableView进行数据加载时,根据数组容器中的布局对象和布局对象引用的数据源子对象创建内容单元,将创建的内容单元按预设位置数据进行显示得到目标UITableView,避免每次UITableView滑入滑出显示屏时对内容单元进行重新计算和重新布局,减少了UITableView在加载大量数据时对性能消耗,提高了UITableView的显示速度,提高了用户体验。
参照图1,本申请实施例中提供一种基于列表视图的数据加载方法,所述方法包括:
S1:获取UITableView加载数据请求,所述UITableView加载数据请求携带有待加载的UITableView标识;
S2:根据所述待加载的UITableView标识获取待加载的UITableView配置数据;
S3:分别根据所述待加载的UITableView配置数据的待加载的内容单元标识集合中的每个待加载的内容单元标识,从数组容器中获取布局对象,得到待加载的布局对象集合,所述待加载的布局对象集合中的待加载的布局对象包括:属性数据、数据源子对象,所述属性数据包括:数据源属性、控件属性、内容单元高度属性,所述数据源属性引用所述数据源子对象;
S4:分别根据所述待加载的布局对象集合中的每个所述待加载的布局对象进行内容单元加载,得到所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的目标内容单元;
S5:采用所述待加载的UITableView配置数据的内容单元位置数据,对所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的所述目标内容单元,在所述待加载的UITableView标识对应的UITableView中进行展示,得到目标UITableView。
本实施例通过分别根据待加载的UITableView配置数据的待加载的内容单元标识集合中的每个待加载的内容单元标识,从数组容器中获取布局对象,得到待加载的布局对象集合,待加载的布局对象集合中的待加载的布局对象包括:属性数据、数据源子对象,属性数据包括:数据源属性、控件属性、内容单元高度属性,数据源属性引用数据源子对象,分别根据待加载的布局对象集合中的每个待加载的布局对象进行内容单元加载,得到待加载的内容单元标识集合中的各个待加载的内容单元标识各自对应的目标内容单元,采用待加载的UITableView配置数据的内容单元位置数据,对待加载的内容单元标识集合中的各个待加载的内容单元标识各自对应的目标内容单元,在待加载的UITableView标识对应的UITableView中进行展示,得到目标UITableView,通过提前创建布局对象并存储到数组容器中,避免每次UITableView滑入滑出显示屏时对内容单元进行重新计算和重新布局,减少了UITableView在加载大量数据时对性能消耗,提高了UITableView的显示速度,提高了用户体验。
对于S1,获取用户输入的UITableView加载数据请求。
UITableView加载数据请求,也就是在UITableView加载数据并展示数据的请求。
UITableView,也就是列表视图,是在iOS开发中用的最为广泛的组件。
待加载的UITableView标识,也就是UITableView加载数据请求需要加载数据的UITableView的UITableView标识。UITableView标识可以是UITableView名称、UITableView的ID等唯一标识一个UITableView的标识。
对于S2,采用所述待加载的UITableView标识从配置数据库中进行查找,将在配置数据库中查找到的UITableView标识对应的UITableView配置数据作为所述待加载的UITableView配置数据。
配置数据库可以存储在数据库中,也可以存储在本地缓存中。
待加载的UITableView配置数据包括:待加载的内容单元标识集合、内容单元位置数据。
待加载的内容单元标识集合中包括至少一个待加载的内容单元标识。
待加载的内容单元标识,也就是需要加载的内容单元的内容单元标识。内容单元标识可以是内容单元名称、内容单元ID等唯一标识一个内容单元的标识。
内容单元位置数据,是指待加载的内容单元标识集合中的每个待加载的内容单元标识对应的内容单元在UITableView中的位置数据。
对于S3,分别根据所述待加载的UITableView配置数据的待加载的内容单元标识集合中的每个待加载的内容单元标识,从数组容器中获取布局对象,将获取的每个布局对象作为一个待加载的布局对象,将所有的待加载的布局对象作为待加载的布局对象集合。也就是说,每个待加载的内容单元标识对应一个待加载的布局对象。
其中,每个待加载的布局对象包括一个属性数据和一个数据源子对象。
控件属性的值类型是Rect(用来存储成对出现的参数,比如,一个矩形框的左上角坐标、宽度和高度)。
内容单元高度属性,是指内容单元的总高度的属性。
每个所述属性数据中包括一个数据源属性、至少一个控件属性和一个内容单元高度属性,也就是说,每个所述属性数据中的控件属性可以为一个或多个。
数据源子对象中包括多个数据值,每个数据值对应一个控件属性。也就是说,每个所述属性数据中控件属性的数量和数据源子对象中数据值的数量相同。从而有利于为数据源子对象的每个数据值单独设置一个控件。
比如,struct PersenF{var p:Persen var nameF:CGRect var ageF:CGRect varcellH:CGFloat},struct Persen{var name:String var age:Int},PersenF是待加载的布局对象,Persen是数据源子对象,Persen中包括两个数据值(也就是name和age),PersenF中的p是数据源属性,PersenF中包括两个控件属性(也就是nameF和ageF),PersenF中的nameF存储的是Persen中name对应的控件属性的属性值,PersenF中的ageF存储的是Persen中age对应的控件属性的属性值,cellH是内容单元高度属性,在此举例不做具体限定。
所述数组容器,用于缓存待加载的布局对象和数据源子对象。
对于S4,将所述待加载的布局对象集合中的每个所述待加载的布局对象的内容单元高度属性的属性值作为内容单元的显示高度,将所述待加载的布局对象集合中的每个所述待加载的布局对象的控件属性的属性值作为内容单元中控件的高度数据,根据所述待加载的布局对象集合中的每个所述待加载的布局对象的数据源属性从数据源子对象中取值并显示在内容单元中对应的控件中,从而完成了对内容单元的设置,将设置后的内容单元作为目标内容单元。
对于S5,在所述待加载的UITableView标识对应的UITableView中,将所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的所述目标内容单元展示在所述待加载的UITableView配置数据的内容单元位置数据对应的位置,将所述待加载的UITableView标识对应的UITableView作为目标UITableView。
在一个实施例中,上述分别根据所述待加载的UITableView配置数据的待加载的内容单元标识集合中的每个待加载的内容单元标识,从数组容器中获取布局对象,得到待加载的布局对象集合的步骤之前,还包括:
S031:获取数据源更新请求,所述数据源更新请求携带有待更新的数据;
S032:响应所述数据源更新请求,分别根据所述待更新的数据进行每个内容单元的布局对象创建,得到待更新的布局对象集合;
S033:根据所述待更新的布局对象集合更新所述数组容器。
本实施例实现了提前创建布局对象并存储到数组容器中,有利于对布局对象的重复使用,避免每次UITableView滑入滑出显示屏时对内容单元进行重新计算和重新布局,减少了UITableView在加载大量数据时对性能消耗,提高了UITableView的显示速度,提高了用户体验。
对于S031,获取服务端发送的数据源更新请求。
数据源更新请求,是指在移动电子设备(也就是,采用iOS作为操作系统的移动电子设备)的客户端(也就是APP)进行数据更新的请求。
待更新的数据,是需要更新到数组容器然后展示到UITableView中的数据。
对于S032,响应所述数据源更新请求,依次从所述待更新的数据中获取一个内容单元的数据,针对获取的每个内容单元的数据创建一个布局对象,将创建的每个布局对象作为一个待更新的布局对象,将所有待更新的布局对象作为待更新的布局对象集合。
对于S033,将所述待更新的布局对象集合更新到本地缓存或数据库的所述数组容器中。
在一个实施例中,上述分别根据所述待更新的数据进行每个内容单元的布局对象创建,得到待更新的布局对象集合的步骤,包括:
S0321:从所述待更新的数据中获取一个内容单元的数据,得到待解析的内容单元数据;
S0322:根据所述待解析的内容单元数据进行数据源子对象创建,得到所述待解析的内容单元数据对应的待更新的数据源子对象;
S0323:根据所述待解析的内容单元数据对应的所述待更新的数据源子对象进行布局对象创建,得到所述待解析的内容单元数据对应的待更新的布局对象;
S0324:重复执行所述从所述待更新的数据中获取一个内容单元的数据,得到待解析的内容单元数据的步骤,直至确定所述待更新的数据对应的所有所述待更新的布局对象;
S0325:根据所有所述待更新的布局对象,得到所述待更新的布局对象集合。
本实施例实现了针对待更新的数据的每个内容单元创建一个布局对象,从而实现了提前进行布局计算,采用布局对象有利于重复使用,避免每次UITableView滑入滑出显示屏时对内容单元进行重新计算和重新布局,减少了UITableView在加载大量数据时对性能消耗,提高了UITableView的显示速度,提高了用户体验。
对于S0321,采用遍历的方式依次从所述待更新的数据中获取一个内容单元的数据,将获取的内容单元的数据作为待解析的内容单元数据。
对于S0322,根据数据源子对象的格式,从所述待解析的内容单元数据中提取数据,根据提取的数据创建数据源子对象,将创建的数据源子对象作为所述待解析的内容单元数据对应的所述待更新的数据源子对象。
比如,数据源子对象的格式为struct Persen{var name:String var age:Int},在此举例不做具体限定。
对于S0323,根据布局对象的数据要求,从所述待解析的内容单元数据中提取数据,根据提取的数据和所述待解析的内容单元数据对应的所述待更新的数据源子对象的对象名称创建布局对象,将创建的布局对象作为所述待解析的内容单元数据对应的所述待更新的布局对象。
对于S0324,重复执行步骤0321至步骤0324,直至确定所述待更新的数据对应的所有所述待更新的布局对象。
对于S0325,将所有所述待更新的布局对象作为所述待更新的布局对象集合。
在一个实施例中,上述根据所述待解析的内容单元数据对应的所述待更新的数据源子对象进行布局对象创建,得到所述待解析的内容单元数据对应的待更新的布局对象的步骤,包括:
S03231:根据所述待解析的内容单元数据对应的所述待更新的数据源子对象的对象名称,确定所述待解析的内容单元数据对应的所述待更新的布局对象的所述数据源属性;
S03232:分别根据所述待解析的内容单元数据对应的所述待更新的数据源子对象中的每个数据值创建一个控件属性,得到所述待解析的内容单元数据对应的所述待更新的数据源子对象对应的待赋值的控件属性集合;
S03233:分别根据所述待解析的内容单元数据对应的所述待更新的数据源子对象中的每个数据值进行控件尺寸计算,得到所述待解析的内容单元数据对应的所述待更新的数据源子对象的各个数据值各自对应的控件尺寸数据;
S03234:采用所述待解析的内容单元数据对应的所述待更新的数据源子对象的各个所述数据值各自对应的所述控件尺寸数据,对所述待解析的内容单元数据对应的所述待更新的数据源子对象对应的所述待赋值的控件属性集合进行赋值,得到所述待解析的内容单元数据对应的所述待更新的布局对象的所述控件属性;
S03235:获取控件边距数据,根据所述控件边距数据和所述待解析的内容单元数据对应的所述待更新的布局对象的所述控件属性进行内容单元高度计算,得到所述待解析的内容单元数据对应的所述待更新的布局对象的所述内容单元高度属性。
本实施例实现了根据所述待解析的内容单元数据对应的所述待更新的数据源子对象进行布局对象创建,从而实现了提前进行布局计算,采用布局对象有利于重复使用,避免每次UITableView滑入滑出显示屏时对内容单元进行重新计算和重新布局,减少了UITableView在加载大量数据时对性能消耗,提高了UITableView的显示速度,提高了用户体验。
对于S03231,将所述待解析的内容单元数据对应的所述待更新的数据源子对象的对象名称,作为所述待解析的内容单元数据对应的所述待更新的布局对象的数据源属性的属性值,得到所述待解析的内容单元数据对应的所述待更新的布局对象的所述数据源属性。
对于S03232,分别根据所述待解析的内容单元数据对应的所述待更新的数据源子对象中的每个数据值创建一个控件属性,创建控件属性时将数据值的名称与预设名称字符拼接得到控件属性的名称,将创建的每个控件属性作为一个待赋值的控件属性,将所有待赋值的控件属性作为所述待解析的内容单元数据对应的所述待更新的数据源子对象对应的待赋值的控件属性集合。
比如,数据源子对象的格式为struct Persen{var name:String var age:Int},数据源子对象有两个数据值(也就是name和age),因此需要创建2个控件属性(控件属性的名称分别为nameF和ageF,其中F为预设名称字符),在此举例不做具体限定。
对于S03233,获取预设控件尺寸计算规则,采用预设控件尺寸计算规则计算所述待解析的内容单元数据对应的所述待更新的数据源子对象中的每个数据值需要的控件尺寸,将计算得到的每个控件尺寸作为一个控件尺寸数据,将所有控件尺寸数据作为所述待解析的内容单元数据对应的所述待更新的数据源子对象的各个数据值各自对应的控件尺寸数据。
对于S03234,从所述待解析的内容单元数据对应的所述待更新的数据源子对象的各个所述数据值中提取一个数据值作为目标数据值;采用目标数据值对应的所述控件尺寸数据,对目标数据值对应的所述待赋值的控件属性进行赋值;重复执行所述从所述待解析的内容单元数据对应的所述待更新的数据源子对象的各个所述数据值中提取一个数据值作为目标数据值的步骤,直至完成所述待解析的内容单元数据对应的所述待更新的数据源子对象的各个所述数据值各自对应的所述待赋值的控件属性的赋值;将赋值后的所有所述待赋值的控件属性作为所述待解析的内容单元数据对应的所述待更新的布局对象的所述控件属性。
对于S03235,可以从本地缓存中获取控件边距数据,也可以从待更新的数据中获取控件边距数据。
根据所述待解析的内容单元数据对应的所述待更新的布局对象的所述控件属性进行高度求和计算,得到内容单元净高度集合;对所述内容单元净高度集合中所有的内容单元净高度和所述控件边距数据进行相加计算,得到所述待解析的内容单元数据对应的所述待更新的布局对象的所述内容单元高度属性。
控件边距数据包括:控件标识、内边距、外边距,每个控件标识对应一个内边距和一个外边距。控件标识可以是控件名称、控件ID等唯一标识一个控件的标识。内边距,是指控件与父容器的边距。外边距,是指控件与子控件的边距。
在一个实施例中,上述分别根据所述待加载的布局对象集合中的每个所述待加载的布局对象进行内容单元加载,得到所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的目标内容单元的步骤,包括:
S41:分别根据所述待加载的布局对象集合中的每个所述待加载的布局对象的所述内容单元高度属性进行内容单元高度设置,得到所述待加载的布局对象集合中的各个所述待加载的布局对象各自对应的待加载内容的内容单元;
S42:根据所述待加载的布局对象集合中的每个所述待加载的布局对象的所述控件属性,分别对每个所述待加载内容的内容单元进行控件设置,得到所述待加载的布局对象集合中的各个所述待加载的布局对象各自对应的所述待加载内容的内容单元对应的待加载内容的控件集合;
S43:根据所述待加载的布局对象集合中的每个所述待加载的布局对象的所述数据源属性,分别对每个所述待加载内容的控件集合中的每个待加载内容的控件进行内容加载,得到所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的所述目标内容单元。
本实施例实现了根据所述待加载的布局对象集合中的每个所述待加载的布局对象进行内容单元加载,提高了UITableView的显示速度,提高了用户体验。
对于S41,根据目标待加载的布局对象创建一个待加载内容的内容单元,待加载内容的内容单元的高度与所述目标待加载的布局对象的所述内容单元高度属性的属性值相同;目标待加载的布局对象是所述待加载的布局对象集合中的任一个所述待加载的布局对象。
对于S42,分别根据目标待加载的布局对象的每个所述控件属性,在目标待加载的布局对象对应的待加载内容的内容单元中添加一个控件,将添加的所有控件作为目标待加载的布局对象对应的所述待加载内容的内容单元对应的待加载内容的控件集合;目标待加载的布局对象是所述待加载的布局对象集合中的任一个所述待加载的布局对象。
对于S43,根据目标待加载的布局对象的所述数据源属性,分别对目标待加载的布局对象对应的所述待加载内容的内容单元对应的所述待加载内容的控件集合中的每个待加载内容的控件进行内容加载,将加载完内容的目标待加载的布局对象对应的所述待加载内容的内容单元作为目标待加载的布局对象对应的待加载的内容单元标识对应的所述目标内容单元;目标待加载的布局对象是所述待加载的布局对象集合中的任一个所述待加载的布局对象。
在一个实施例中,上述采用所述待加载的UITableView配置数据的内容单元位置数据,对所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的所述目标内容单元,在所述待加载的UITableView标识对应的UITableView中进行展示,得到目标UITableView的步骤,包括:
S51:从所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的所述目标内容单元中提取一个所述目标内容单元,得到待展示的目标内容单元;
S52:根据所述待展示的目标内容单元,从所述待加载的UITableView配置数据的内容单元位置数据中获取位置数据,得到所述待展示的目标内容单元对应的待展示的位置数据;
S53:采用所述待展示的目标内容单元对应的所述待展示的位置数据,将所述待展示的目标内容单元,在所述待加载的UITableView标识对应的UITableView中进行展示;
S54:重复执行所述从所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的所述目标内容单元中提取一个所述目标内容单元,得到待展示的目标内容单元的步骤,直至完成所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的所述目标内容单元的展示;
S55:将所述待加载的UITableView标识对应的UITableView,作为所述目标UITableView。
本实施例实现了基于数组容器得到的目标内容单元,采用所述待加载的UITableView配置数据的内容单元位置数据,在所述待加载的UITableView标识对应的UITableView中进行展示,避免每次UITableView滑入滑出显示屏时对内容单元进行重新计算和重新布局,减少了UITableView在加载大量数据时对性能消耗,提高了UITableView的显示速度,提高了用户体验。
对于S51,按遍历的方式从所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的所述目标内容单元中提取一个所述目标内容单元,将提取的所述目标内容单元作为待展示的目标内容单元。
对于S52,采用所述待展示的目标内容单元的内容单元标识,从所述待加载的UITableView配置数据的内容单元位置数据中进行查找,将在所述待加载的UITableView配置数据的内容单元位置数据中查找到的内容单元标识对应的位置数据作为所述待展示的目标内容单元对应的待展示的位置数据。
对于S53,在所述待加载的UITableView标识对应的UITableView中,将所述待展示的目标内容单元,展示在所述待展示的目标内容单元对应的所述待展示的位置数据对应的位置。
对于S54,重复执行步骤S51至步骤S54,直至完成所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的所述目标内容单元的展示。
对于S55,将展示了所有所述目标内容单元的所述待加载的UITableView标识对应的UITableView,作为所述目标UITableView。
在一个实施例中,上述采用所述待加载的UITableView配置数据的内容单元位置数据,对所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的所述目标内容单元,在所述待加载的UITableView标识对应的UITableView中进行展示,得到目标UITableView的步骤之后,包括:
S61:获取对所述目标UITableView的数据变更请求,所述数据变更请求携带有待变更的数据;
S62:分别根据所述待变更的数据进行每个内容单元的布局对象创建,得到所述目标UITableView的待变更的布局对象集合;
S63:根据所述目标UITableView的所述待变更的布局对象集合更新所述数组容器;
S64:分别根据所述数组容器中的所述待变更的布局对象集合中的每个待变更的布局对象进行内容单元加载,得到所述目标UITableView的所述待变更的布局对象集合中的各个所述待变更的布局对象各自对应的待变更的目标内容单元;
S65:根据所述目标UITableView的所述待变更的布局对象集合中的各个所述待变更的布局对象各自对应的所述待变更的目标内容单元,对所述目标UITableView进行刷新展示,得到刷新后的目标UITableView。
本实施例实现了先将对待变更的数据创建布局对象更新数组容器,然后根据数组容器对目标UITableView进行更新,避免更新UITableView时重新计算和重新布局,减少了UITableView在更新数据时对性能消耗,提高了UITableView的更新速度,提高了用户体验。
对于S61,获取服务端发送的对所述目标UITableView的数据变更请求。
待变更的数据,是需要在目标UITableView进行展示的数据。
对于S62,依次从所述待变更的数据中获取一个内容单元的数据,针对获取的每个内容单元的数据创建一个布局对象,将创建的所有布局对象作为所述目标UITableView的待变更的布局对象集合。
对于S63,将所述目标UITableView的所述待变更的布局对象集合更新到本地缓存的所述数组容器中。
对于S64,从所述数组容器中的所述目标UITableView的所述待变更的布局对象集合中获取一个待变更的布局对象作为目标待变更的布局对象;将所述目标待变更的布局对象的内容单元高度属性作为内容单元的显示高度,将所述目标待变更的布局对象的控件属性作为内容单元中控件的尺寸数据,将所述目标待变更的布局对象的数据源属性从所述目标待变更的布局对象的数据源子对象中取值并显示在内容单元中对应的控件中,从而得到目标待变更的布局对象对应的待变更的目标内容单元。
对于S65,采用所述目标UITableView的所述待变更的布局对象集合中的各个所述待变更的布局对象各自对应的所述待变更的目标内容单元,对所述目标UITableView的内容单元进行刷新展示,将刷新展示后的UITableView作为所述刷新后的目标UITableView。
参照图2,本申请还提出了一种基于列表视图的数据加载装置,所述装置包括:
请求获取模块100,用于获取UITableView加载数据请求,所述UITableView加载数据请求携带有待加载的UITableView标识;
配置数据获取模块200,用于根据所述待加载的UITableView标识获取待加载的UITableView配置数据;
布局对象获取模块300,用于分别根据所述待加载的UITableView配置数据的待加载的内容单元标识集合中的每个待加载的内容单元标识,从数组容器中获取布局对象,得到待加载的布局对象集合,所述待加载的布局对象集合中的待加载的布局对象包括:属性数据、数据源子对象,所述属性数据包括:数据源属性、控件属性、内容单元高度属性,所述数据源属性引用所述数据源子对象;
内容单元加载模块400,用于分别根据所述待加载的布局对象集合中的每个所述待加载的布局对象进行内容单元加载,得到所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的目标内容单元;
展示模块500,用于采用所述待加载的UITableView配置数据的内容单元位置数据,对所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的所述目标内容单元,在所述待加载的UITableView标识对应的UITableView中进行展示,得到目标UITableView。
本实施例通过分别根据待加载的UITableView配置数据的待加载的内容单元标识集合中的每个待加载的内容单元标识,从数组容器中获取布局对象,得到待加载的布局对象集合,待加载的布局对象集合中的待加载的布局对象包括:属性数据、数据源子对象,属性数据包括:数据源属性、控件属性、内容单元高度属性,数据源属性引用数据源子对象,分别根据待加载的布局对象集合中的每个待加载的布局对象进行内容单元加载,得到待加载的内容单元标识集合中的各个待加载的内容单元标识各自对应的目标内容单元,采用待加载的UITableView配置数据的内容单元位置数据,对待加载的内容单元标识集合中的各个待加载的内容单元标识各自对应的目标内容单元,在待加载的UITableView标识对应的UITableView中进行展示,得到目标UITableView,通过提前创建布局对象并存储到数组容器中,避免每次UITableView滑入滑出显示屏时对内容单元进行重新计算和重新布局,减少了UITableView在加载大量数据时对性能消耗,提高了UITableView的显示速度,提高了用户体验。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于储存基于列表视图的数据加载方法等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于列表视图的数据加载方法。所述基于列表视图的数据加载方法,包括:获取UITableView加载数据请求,所述UITableView加载数据请求携带有待加载的UITableView标识;根据所述待加载的UITableView标识获取待加载的UITableView配置数据;分别根据所述待加载的UITableView配置数据的待加载的内容单元标识集合中的每个待加载的内容单元标识,从数组容器中获取布局对象,得到待加载的布局对象集合,所述待加载的布局对象集合中的待加载的布局对象包括:属性数据、数据源子对象,所述属性数据包括:数据源属性、控件属性、内容单元高度属性,所述数据源属性引用所述数据源子对象;分别根据所述待加载的布局对象集合中的每个所述待加载的布局对象进行内容单元加载,得到所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的目标内容单元;采用所述待加载的UITableView配置数据的内容单元位置数据,对所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的所述目标内容单元,在所述待加载的UITableView标识对应的UITableView中进行展示,得到目标UITableView。
本实施例通过分别根据待加载的UITableView配置数据的待加载的内容单元标识集合中的每个待加载的内容单元标识,从数组容器中获取布局对象,得到待加载的布局对象集合,待加载的布局对象集合中的待加载的布局对象包括:属性数据、数据源子对象,属性数据包括:数据源属性、控件属性、内容单元高度属性,数据源属性引用数据源子对象,分别根据待加载的布局对象集合中的每个待加载的布局对象进行内容单元加载,得到待加载的内容单元标识集合中的各个待加载的内容单元标识各自对应的目标内容单元,采用待加载的UITableView配置数据的内容单元位置数据,对待加载的内容单元标识集合中的各个待加载的内容单元标识各自对应的目标内容单元,在待加载的UITableView标识对应的UITableView中进行展示,得到目标UITableView,通过提前创建布局对象并存储到数组容器中,避免每次UITableView滑入滑出显示屏时对内容单元进行重新计算和重新布局,减少了UITableView在加载大量数据时对性能消耗,提高了UITableView的显示速度,提高了用户体验。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种基于列表视图的数据加载方法,包括步骤:获取UITableView加载数据请求,所述UITableView加载数据请求携带有待加载的UITableView标识;根据所述待加载的UITableView标识获取待加载的UITableView配置数据;分别根据所述待加载的UITableView配置数据的待加载的内容单元标识集合中的每个待加载的内容单元标识,从数组容器中获取布局对象,得到待加载的布局对象集合,所述待加载的布局对象集合中的待加载的布局对象包括:属性数据、数据源子对象,所述属性数据包括:数据源属性、控件属性、内容单元高度属性,所述数据源属性引用所述数据源子对象;分别根据所述待加载的布局对象集合中的每个所述待加载的布局对象进行内容单元加载,得到所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的目标内容单元;采用所述待加载的UITableView配置数据的内容单元位置数据,对所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的所述目标内容单元,在所述待加载的UITableView标识对应的UITableView中进行展示,得到目标UITableView。
上述执行的基于列表视图的数据加载方法,通过分别根据待加载的UITableView配置数据的待加载的内容单元标识集合中的每个待加载的内容单元标识,从数组容器中获取布局对象,得到待加载的布局对象集合,待加载的布局对象集合中的待加载的布局对象包括:属性数据、数据源子对象,属性数据包括:数据源属性、控件属性、内容单元高度属性,数据源属性引用数据源子对象,分别根据待加载的布局对象集合中的每个待加载的布局对象进行内容单元加载,得到待加载的内容单元标识集合中的各个待加载的内容单元标识各自对应的目标内容单元,采用待加载的UITableView配置数据的内容单元位置数据,对待加载的内容单元标识集合中的各个待加载的内容单元标识各自对应的目标内容单元,在待加载的UITableView标识对应的UITableView中进行展示,得到目标UITableView,通过提前创建布局对象并存储到数组容器中,避免每次UITableView滑入滑出显示屏时对内容单元进行重新计算和重新布局,减少了UITableView在加载大量数据时对性能消耗,提高了UITableView的显示速度,提高了用户体验。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种基于列表视图的数据加载方法,其特征在于,所述方法包括:
获取UITableView加载数据请求,所述UITableView加载数据请求携带有待加载的UITableView标识;
根据所述待加载的UITableView标识获取待加载的UITableView配置数据;
分别根据所述待加载的UITableView配置数据的待加载的内容单元标识集合中的每个待加载的内容单元标识,从数组容器中获取布局对象,得到待加载的布局对象集合,所述待加载的布局对象集合中的待加载的布局对象包括:属性数据、数据源子对象,所述属性数据包括:数据源属性、控件属性、内容单元高度属性,所述数据源属性引用所述数据源子对象;
分别根据所述待加载的布局对象集合中的每个所述待加载的布局对象进行内容单元加载,得到所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的目标内容单元;
采用所述待加载的UITableView配置数据的内容单元位置数据,对所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的所述目标内容单元,在所述待加载的UITableView标识对应的UITableView中进行展示,得到目标UITableView。
2.根据权利要求1所述的基于列表视图的数据加载方法,其特征在于,所述分别根据所述待加载的UITableView配置数据的待加载的内容单元标识集合中的每个待加载的内容单元标识,从数组容器中获取布局对象,得到待加载的布局对象集合的步骤之前,还包括:
获取数据源更新请求,所述数据源更新请求携带有待更新的数据;
响应所述数据源更新请求,分别根据所述待更新的数据进行每个内容单元的布局对象创建,得到待更新的布局对象集合;
根据所述待更新的布局对象集合更新所述数组容器。
3.根据权利要求2所述的基于列表视图的数据加载方法,其特征在于,所述分别根据所述待更新的数据进行每个内容单元的布局对象创建,得到待更新的布局对象集合的步骤,包括:
从所述待更新的数据中获取一个内容单元的数据,得到待解析的内容单元数据;
根据所述待解析的内容单元数据进行数据源子对象创建,得到所述待解析的内容单元数据对应的待更新的数据源子对象;
根据所述待解析的内容单元数据对应的所述待更新的数据源子对象进行布局对象创建,得到所述待解析的内容单元数据对应的待更新的布局对象;
重复执行所述从所述待更新的数据中获取一个内容单元的数据,得到待解析的内容单元数据的步骤,直至确定所述待更新的数据对应的所有所述待更新的布局对象;
根据所有所述待更新的布局对象,得到所述待更新的布局对象集合。
4.根据权利要求3所述的基于列表视图的数据加载方法,其特征在于,所述根据所述待解析的内容单元数据对应的所述待更新的数据源子对象进行布局对象创建,得到所述待解析的内容单元数据对应的待更新的布局对象的步骤,包括:
根据所述待解析的内容单元数据对应的所述待更新的数据源子对象的对象名称,确定所述待解析的内容单元数据对应的所述待更新的布局对象的所述数据源属性;
分别根据所述待解析的内容单元数据对应的所述待更新的数据源子对象中的每个数据值创建一个控件属性,得到所述待解析的内容单元数据对应的所述待更新的数据源子对象对应的待赋值的控件属性集合;
分别根据所述待解析的内容单元数据对应的所述待更新的数据源子对象中的每个数据值进行控件尺寸计算,得到所述待解析的内容单元数据对应的所述待更新的数据源子对象的各个数据值各自对应的控件尺寸数据;
采用所述待解析的内容单元数据对应的所述待更新的数据源子对象的各个所述数据值各自对应的所述控件尺寸数据,对所述待解析的内容单元数据对应的所述待更新的数据源子对象对应的所述待赋值的控件属性集合进行赋值,得到所述待解析的内容单元数据对应的所述待更新的布局对象的所述控件属性;
获取控件边距数据,根据所述控件边距数据和所述待解析的内容单元数据对应的所述待更新的布局对象的所述控件属性进行内容单元高度计算,得到所述待解析的内容单元数据对应的所述待更新的布局对象的所述内容单元高度属性。
5.根据权利要求1所述的基于列表视图的数据加载方法,其特征在于,所述分别根据所述待加载的布局对象集合中的每个所述待加载的布局对象进行内容单元加载,得到所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的目标内容单元的步骤,包括:
分别根据所述待加载的布局对象集合中的每个所述待加载的布局对象的所述内容单元高度属性进行内容单元高度设置,得到所述待加载的布局对象集合中的各个所述待加载的布局对象各自对应的待加载内容的内容单元;
根据所述待加载的布局对象集合中的每个所述待加载的布局对象的所述控件属性,分别对每个所述待加载内容的内容单元进行控件设置,得到所述待加载的布局对象集合中的各个所述待加载的布局对象各自对应的所述待加载内容的内容单元对应的待加载内容的控件集合;
根据所述待加载的布局对象集合中的每个所述待加载的布局对象的所述数据源属性,分别对每个所述待加载内容的控件集合中的每个待加载内容的控件进行内容加载,得到所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的所述目标内容单元。
6.根据权利要求1所述的基于列表视图的数据加载方法,其特征在于,所述采用所述待加载的UITableView配置数据的内容单元位置数据,对所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的所述目标内容单元,在所述待加载的UITableView标识对应的UITableView中进行展示,得到目标UITableView的步骤,包括:
从所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的所述目标内容单元中提取一个所述目标内容单元,得到待展示的目标内容单元;
根据所述待展示的目标内容单元,从所述待加载的UITableView配置数据的内容单元位置数据中获取位置数据,得到所述待展示的目标内容单元对应的待展示的位置数据;
采用所述待展示的目标内容单元对应的所述待展示的位置数据,将所述待展示的目标内容单元,在所述待加载的UITableView标识对应的UITableView中进行展示;
重复执行所述从所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的所述目标内容单元中提取一个所述目标内容单元,得到待展示的目标内容单元的步骤,直至完成所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的所述目标内容单元的展示;
将所述待加载的UITableView标识对应的UITableView,作为所述目标UITableView。
7.根据权利要求1所述的基于列表视图的数据加载方法,其特征在于,所述采用所述待加载的UITableView配置数据的内容单元位置数据,对所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的所述目标内容单元,在所述待加载的UITableView标识对应的UITableView中进行展示,得到目标UITableView的步骤之后,包括:
获取对所述目标UITableView的数据变更请求,所述数据变更请求携带有待变更的数据;
分别根据所述待变更的数据进行每个内容单元的布局对象创建,得到所述目标UITableView的待变更的布局对象集合;
根据所述目标UITableView的所述待变更的布局对象集合更新所述数组容器;
分别根据所述数组容器中的所述待变更的布局对象集合中的每个待变更的布局对象进行内容单元加载,得到所述目标UITableView的所述待变更的布局对象集合中的各个所述待变更的布局对象各自对应的待变更的目标内容单元;
根据所述目标UITableView的所述待变更的布局对象集合中的各个所述待变更的布局对象各自对应的所述待变更的目标内容单元,对所述目标UITableView进行刷新展示,得到刷新后的目标UITableView。
8.一种基于列表视图的数据加载装置,其特征在于,所述装置包括:
请求获取模块,用于获取UITableView加载数据请求,所述UITableView加载数据请求携带有待加载的UITableView标识;
配置数据获取模块,用于根据所述待加载的UITableView标识获取待加载的UITableView配置数据;
布局对象获取模块,用于分别根据所述待加载的UITableView配置数据的待加载的内容单元标识集合中的每个待加载的内容单元标识,从数组容器中获取布局对象,得到待加载的布局对象集合,所述待加载的布局对象集合中的待加载的布局对象包括:属性数据、数据源子对象,所述属性数据包括:数据源属性、控件属性、内容单元高度属性,所述数据源属性引用所述数据源子对象;
内容单元加载模块,用于分别根据所述待加载的布局对象集合中的每个所述待加载的布局对象进行内容单元加载,得到所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的目标内容单元;
展示模块,用于采用所述待加载的UITableView配置数据的内容单元位置数据,对所述待加载的内容单元标识集合中的各个所述待加载的内容单元标识各自对应的所述目标内容单元,在所述待加载的UITableView标识对应的UITableView中进行展示,得到目标UITableView。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110292140.0A CN113051012B (zh) | 2021-03-18 | 2021-03-18 | 基于列表视图的数据加载方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110292140.0A CN113051012B (zh) | 2021-03-18 | 2021-03-18 | 基于列表视图的数据加载方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113051012A CN113051012A (zh) | 2021-06-29 |
CN113051012B true CN113051012B (zh) | 2022-12-02 |
Family
ID=76513386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110292140.0A Active CN113051012B (zh) | 2021-03-18 | 2021-03-18 | 基于列表视图的数据加载方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113051012B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8701018B1 (en) * | 2004-04-29 | 2014-04-15 | Paul Erich Keel | Methods and apparatus for managing information objects in an electronic personal information management system |
CN105677366A (zh) * | 2016-02-26 | 2016-06-15 | 四川长虹电器股份有限公司 | 基于iOS系统中UITableView实现无限循环滚动选择的方法 |
CN107908336A (zh) * | 2017-11-13 | 2018-04-13 | 平安科技(深圳)有限公司 | 列表控件的刷新方法、装置、存储介质及终端 |
US9959098B1 (en) * | 2015-03-15 | 2018-05-01 | Sigma Sciences Limited | Data processing systems and methods |
CN109376343A (zh) * | 2018-08-22 | 2019-02-22 | 深圳点猫科技有限公司 | 一种编程平台下的表单的自动生成方法及电子设备 |
CN109634490A (zh) * | 2018-12-14 | 2019-04-16 | 北京字节跳动网络技术有限公司 | 一种列表显示方法、装置、设备及存储介质 |
WO2019085085A1 (zh) * | 2017-11-01 | 2019-05-09 | 平安科技(深圳)有限公司 | 页面展示方法、装置、计算机设备和存储介质 |
CN110413931A (zh) * | 2019-07-31 | 2019-11-05 | 北京奇艺世纪科技有限公司 | 数据加载方法、装置、计算机设备和存储介质 |
CN110457084A (zh) * | 2019-07-10 | 2019-11-15 | 五八有限公司 | 一种加载方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2414378A1 (en) * | 2002-12-09 | 2004-06-09 | Corel Corporation | System and method for controlling user interface features of a web application |
US20100077324A1 (en) * | 2008-09-23 | 2010-03-25 | Microsoft Corporation | Pluggable presentation and domain coupling |
CN103577057A (zh) * | 2012-07-30 | 2014-02-12 | 中兴通讯股份有限公司 | 一种在终端上横向布局列表部件的方法及装置 |
-
2021
- 2021-03-18 CN CN202110292140.0A patent/CN113051012B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8701018B1 (en) * | 2004-04-29 | 2014-04-15 | Paul Erich Keel | Methods and apparatus for managing information objects in an electronic personal information management system |
US9959098B1 (en) * | 2015-03-15 | 2018-05-01 | Sigma Sciences Limited | Data processing systems and methods |
CN105677366A (zh) * | 2016-02-26 | 2016-06-15 | 四川长虹电器股份有限公司 | 基于iOS系统中UITableView实现无限循环滚动选择的方法 |
WO2019085085A1 (zh) * | 2017-11-01 | 2019-05-09 | 平安科技(深圳)有限公司 | 页面展示方法、装置、计算机设备和存储介质 |
CN107908336A (zh) * | 2017-11-13 | 2018-04-13 | 平安科技(深圳)有限公司 | 列表控件的刷新方法、装置、存储介质及终端 |
CN109376343A (zh) * | 2018-08-22 | 2019-02-22 | 深圳点猫科技有限公司 | 一种编程平台下的表单的自动生成方法及电子设备 |
CN109634490A (zh) * | 2018-12-14 | 2019-04-16 | 北京字节跳动网络技术有限公司 | 一种列表显示方法、装置、设备及存储介质 |
CN110457084A (zh) * | 2019-07-10 | 2019-11-15 | 五八有限公司 | 一种加载方法及装置 |
CN110413931A (zh) * | 2019-07-31 | 2019-11-05 | 北京奇艺世纪科技有限公司 | 数据加载方法、装置、计算机设备和存储介质 |
Non-Patent Citations (3)
Title |
---|
iOS中基于UITableView的大批量数据加载优化;刘辰基;《杭州电子科技大学学报》;20130815;第46-49页 * |
swift中的uitable;爱学习~天天学习;《博客园,https://www.cnblogs.com/kangniuniu/p/4998878.html》;20160107;第1-3页 * |
使用struct从tableview创建详细视图控制器;佚名;《https://www.thinbug.com/q/38816835,https://www.thinbug.com/q/38816835》;20160807;第1-4页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113051012A (zh) | 2021-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110020325B (zh) | 页面加载方法、装置、设备及可读存储介质 | |
CN111596965A (zh) | 项目工程初始化方法、装置、计算机设备和存储介质 | |
CN111324905A (zh) | 影像数据标注方法、装置、计算机设备和存储介质 | |
CN110377218B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN111414379A (zh) | 序列号生成方法、装置、设备及计算机可读存储介质 | |
CN112035186A (zh) | H5页面的预加载及跳转方法、装置、设备及介质 | |
CN110580284A (zh) | 一种实体消歧方法、装置、计算机设备及存储介质 | |
CN112699923A (zh) | 文档分类预测方法、装置、计算机设备及存储介质 | |
CN112035114A (zh) | 页面回退方法、装置、设备及介质 | |
CN113051012B (zh) | 基于列表视图的数据加载方法、装置、设备及介质 | |
CN111078564B (zh) | 一种ui测试用例管理方法、装置、计算机设备以及计算机可读存储介质 | |
CN111966704A (zh) | Orm框架实现方法、系统、计算机设备和存储介质 | |
CN110728736A (zh) | 图片标注方法、装置、计算机设备和存储介质 | |
CN110688400A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN107679168B (zh) | 一种基于java平台的目标网站内容获取方法 | |
CN112015378A (zh) | 骨架屏页面生成方法、装置、计算机设备和存储介质 | |
CN114610973A (zh) | 信息的搜索匹配方法、装置、计算机设备及存储介质 | |
CN110321405B (zh) | 模型匹配方法、装置、计算机可读存储介质和计算机设备 | |
CN113885897A (zh) | 客户端安装包的打包方法、装置、设备及存储介质 | |
US9779387B2 (en) | Business-to-business document user interface and integration design | |
CN113705816A (zh) | 流程图生成方法、电子装置、装置及可读存储介质 | |
CN112417020A (zh) | 业务扩展的实现方法、装置、计算机设备和存储介质 | |
CN113326080B (zh) | H5页面的加载方法、装置、设备及存储介质 | |
CN114003776B (zh) | 基于中间件的图表生成方法、装置、设备及存储介质 | |
CN112784133B (zh) | 链路可视化方法、装置、设备及存储介质 |
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 |