CN115269104A - 基于iOS的卡片式列表的展示方法、装置、介质及设备 - Google Patents
基于iOS的卡片式列表的展示方法、装置、介质及设备 Download PDFInfo
- Publication number
- CN115269104A CN115269104A CN202210971597.9A CN202210971597A CN115269104A CN 115269104 A CN115269104 A CN 115269104A CN 202210971597 A CN202210971597 A CN 202210971597A CN 115269104 A CN115269104 A CN 115269104A
- Authority
- CN
- China
- Prior art keywords
- card
- data
- target
- type
- displayed
- 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.)
- Pending
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种基于iOS的卡片式列表的展示方法、装置、介质及设备,通过将卡片展示区(含x张待展示卡片)的当前卡片移除,展示下一张卡片;从预先获取的数据序列(含y条待展示数据)中确定出当前排序第一的目标数据,并确定出目标数据的数据类型;然后判断移除的当前卡片的卡片类型与目标数据的数据类型是否对应;若对应,确定移除的当前卡片为目标卡片单元;若不对应,将移除的当前卡片置入缓存池中进行缓存,并从缓存池中确定出卡片类型与目标数据的数据类型对应的目标卡片单元,将目标数据更新到目标卡片单元,得到一张待展示卡片,再将待展示卡片置于卡片展示区的底层,并从数据序列中删除目标数据。
Description
技术领域
本申请涉及iOS开发技术领域,具体而言,涉及一种基于iOS的卡片式列表的展示方法、装置、介质及设备。
背景技术
iOS客户端开发,卡片式列表并没有原生的视图去使用,苹果也没有出类似的解决方案,所以需要开发者自己去实现里面的每一个功能。
iOS卡片式列表叠加多个层次视图,多个层次视图结构为上下叠加。对于移除屏幕的卡片,是销毁还是缓存,现有技术的卡片式列表的实现方案均有涉及,但这些方案存在的问题是:如果卡片视图移除屏幕就进行销毁,无疑会给CPU造成更多的负担,对于一些涉及卡片稍多的场景(例如涉及10个卡片,20个卡片的场景),就需要消耗大量的资源,来创建这些卡片,以将创建的卡片叠加在一起进行展示。如果卡片视图移除屏幕后进行缓存,那卡片的缓存随着数量的积累,将占用大量的内存。
因此,现有技术中,iOS卡片式列表的实现方案,很难处理CPU过多占用和内存过多消耗的问题,这样的应用对于设备来说可能造成卡顿现象,对于用户来说体验较差。
发明内容
本申请实施例的目的在于提供一种基于iOS的卡片式列表的展示方法、装置、介质及设备,以通过卡片的复用技术有效降低卡片的创建次数,大大降低CPU的消耗和缓存卡片占用的内存。
为了实现上述目的,本申请的实施例通过如下方式实现:
第一方面,本申请实施例提供一种基于iOS的卡片式列表的展示方法,包括:获取卡片切换指令,并基于所述卡片切换指令将卡片展示区的当前卡片移除,展示下一张卡片,其中,所述卡片展示区内叠置x张卡片;从预先获取的数据序列中确定出当前排序第一的目标数据,并确定出所述目标数据的数据类型,其中,所述数据序列含y条待展示数据,且每条待展示数据具有相应的数据类型;判断移除的当前卡片的卡片类型与所述目标数据的数据类型是否对应;若对应,确定移除的当前卡片为所述目标卡片单元;若不对应,将移除的当前卡片置入缓存池中进行缓存,并从缓存池中确定出卡片类型与所述目标数据的数据类型对应的目标卡片单元,其中,缓存池中存储有多种卡片类型的卡片;将所述目标数据更新到所述目标卡片单元,得到一张待展示卡片,将所述待展示卡片置于所述卡片展示区的底层,并从所述数据序列中删除所述目标数据。
在本申请实施例中,通过将卡片展示区(其内叠置x张卡片)的当前卡片移除,展示下一张卡片;从预先获取的数据序列(含y条待展示数据)中确定出当前排序第一的目标数据,并确定出目标数据的数据类型;然后判断移除的当前卡片的卡片类型与目标数据的数据类型是否对应;若对应,确定移除的当前卡片为目标卡片单元(可以理解为卡片模板,有不同类型的卡片模板);若不对应,将移除的当前卡片置入缓存池中进行缓存,并从缓存池中确定出卡片类型与目标数据的数据类型对应的目标卡片单元,将目标数据更新到目标卡片单元,得到一张待展示卡片,再将待展示卡片置于卡片展示区的底层,并从数据序列中删除目标数据。这样的方式,可以实现卡片的复用,移除的当前卡片如果符合条件(类型匹配),可以直接利用(作为目标卡片单元),如果不符合条件(类型不匹配),可以置入缓存池中缓存待用。这样的方式,确定出目标卡片单元后无需创建新的卡片,且仅在当前卡片不符合条件且缓存池中没有符合条件的卡片时才涉及到创建卡片,因此可以有效降低卡片的创建次数。而缓存池中仅需缓存少量的卡片(缓存池内缓存所有类型的每个类型的卡片不超过x张),即可满足所有应用场景,能大大降低缓存卡片占用的内存。因此,本方案能够有效处理卡片式列表实现方案面临的CPU过多占用和内存过多消耗的问题,提升用户体验。
结合第一方面,在第一方面的第一种可能的实现方式中,从缓存池中确定出卡片类型与所述目标数据的数据类型对应的目标卡片单元,包括:判断缓存池中是否存在卡片类型与所述目标数据的数据类型对应的卡片;若存在,确定此卡片为所述目标卡片单元;若不存在,创建卡片类型与所述目标数据的数据类型对应的卡片并放入缓存池,再从缓存池中确定此卡片为所述目标卡片单元。
结合第一方面,在第一方面的第二种可能的实现方式中,在获取卡片切换指令之前,所述方法还包括:创建一个卡片列表view作为卡片展示区;创建一个父类卡片,其中,父类卡片中设置有基本元素和基本控件;获取数据序列,其中,所述数据序列含y条待展示数据,且每条待展示数据具有相应的数据类型;针对所述数据序列中当前排序第一的目标数据,确定出该目标数据的数据类型,创建一个继承于所述父类卡片的子卡片,并基于该目标数据的数据类型,为此子卡片添加个性化控件,得到卡片类型与此目标数据的数据类型对应的目标卡片单元,然后将该目标数据添加到此目标卡片单元中,得到一张待展示卡片,再从所述数据序列中删除所述目标数据,并将此待展示卡片置于所述卡片列表view的底层,直到卡片列表view中添加至x张待展示卡片;对所述卡片列表view中位于最顶层的一张待展示卡片进行展示。
在该实现方式中,这样的处理方式可以构建卡片式列表运行的基础部分,创建子卡片后添加个性化控件即可得到相应的目标卡片单元,从而进一步将目标数据添加到其中得到待展示卡片。在初始阶段,缓存池中卡片较少,卡片类型相对单一,随着卡片式列表运行时长的增加,展示过的卡片数量提升,缓存池中缓存的卡片就丰富起来,等到缓存池中缓存的卡片达到nx(n为卡片类型的数量,x为卡片展示区内叠置的卡片数量)时,即可应对所有的场景,不需要再创建新的卡片。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,创建一个父类卡片的方式为:创建一个父类的卡片cell;为父类的卡片cell添加滑动手势pan Gesture,以在用户滑动卡片时,控制卡片做transform形变,当用户停止滑动并离开触摸点,判断transform形变是否达到设定尺寸,以确定是否移除卡片;为父类的卡片cell添加卡片移除动画,以在卡片移出屏幕时播放。
在该实现方式中,通过此种方式创建一个父类卡片,可以把通用的基本元素(例如卡片移除动画)和基本控件(例如滑动手势pan Gesture)添加到其中,便于后续子卡片的创建。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,判断transform形变是否达到设定尺寸,以确定是否移除卡片,包括:判断transform形变是否达到屏幕size的二分之一;若transform形变达到屏幕size的二分之一,生成卡片切换指令;若transform形变未达到屏幕size的二分之一,还原该卡片。
结合第一方面的第二种可能的实现方式,在第一方面的第五种可能的实现方式中,在从所述数据序列中删除所述目标数据后,所述方法还包括:检测所述数据序列中待展示数据的剩余数量;当所述剩余数量不足z条时,拉取新的待展示数据列于所述数据序列的末尾,以将所述数据序列中的待展示数据的数量补充至y条。
在该实现方式中,这样的方式可以及时补足数据序列中待展示数据的数量。
结合第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,x=4,y≤20,z∈[0,16]。
第二方面,本申请实施例提供一种基于iOS的卡片式列表的展示装置,包括:卡片切换模块,用于获取卡片切换指令,并基于所述卡片切换指令将卡片展示区的当前卡片移除,展示下一张卡片,其中,所述卡片展示区内叠置x张卡片;目标数据确定模块,用于从预先获取的数据序列中确定出当前排序第一的目标数据,并确定出所述目标数据的数据类型,其中,所述数据序列含y条待展示数据,且每条待展示数据具有相应的数据类型;判断模块,用于判断移除的当前卡片的卡片类型与所述目标数据的数据类型是否对应;目标卡片单元确定模块,用于在移除的当前卡片的卡片类型与所述目标数据的数据类型对应时,确定移除的当前卡片为所述目标卡片单元;用于在移除的当前卡片的卡片类型与所述目标数据的数据类型不对应时,将移除的当前卡片置入缓存池中进行缓存,并从缓存池中确定出卡片类型与所述目标数据的数据类型对应的目标卡片单元,其中,缓存池中存储有多种卡片类型的卡片;待展示卡片生成模块,用于将所述目标数据更新到所述目标卡片单元,得到一张待展示卡片,将所述待展示卡片置于所述卡片展示区的底层,并从所述数据序列中删除所述目标数据。
第三方面,本申请实施例提供一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行第一方面或第一方面的可能的实现方式中任一项所述的基于iOS的卡片式列表的展示方法。
第四方面,本申请实施例提供一种电子设备,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,所述程序指令被处理器加载并执行时实现第一方面或第一方面的可能的实现方式中任一项所述的基于iOS的卡片式列表的展示方法。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种电子设备的结构框图。
图2为本申请实施例提供的基于iOS的卡片式列表的展示方法的流程图。
图3为页面实现卡片式列表的效果图。
图4为实现卡片式列表的效果页面的布局层次图。
图5为本申请实施例提供的基于iOS的卡片式列表的展示装置的结构框图。
图标:10-电子设备;11-存储器;12-通信模块;13-总线;14-处理器;20-基于iOS的卡片式列表的展示装置;21-卡片切换模块;22-目标数据确定模块;23-判断模块;24-目标卡片单元确定模块;25-待展示卡片生成模块。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
在本实施例中,基于iOS的卡片式列表的展示方法可以应用于电子设备(例如智能手机、平板电脑等),电子设备搭载iOS系统,可以执行基于iOS的卡片式列表的展示方法。
请参阅图1,图1为本申请实施例提供的一种电子设备10的结构框图。
示例性的,电子设备10可以包括:通过网络与外界连接的通信模块12、用于执行程序指令的一个或多个处理器14、总线13和不同形式的存储器11,例如,磁盘、ROM、或RAM,或其任意组合。以及,电子设备10还具有显示屏,可以展示卡片。存储器11、通信模块12、处理器14之间可以通过总线13连接。
示例性的,存储器11中存储有程序。处理器14可以从存储器11调用并运行这些程序,从而便可以通过运行程序而实现基于iOS的卡片式列表的展示方法。
请参阅图2,图2为本申请实施例提供的基于iOS的卡片式列表的展示方法的流程图。在本实施例中,基于iOS的卡片式列表的展示方法可以包括步骤S10、步骤S20、步骤S30、步骤S40和步骤S50。
为了便于理解,在对步骤S10介绍之前,此处先对构建卡片式列表的过程进行介绍。
在本实施例中,可以先创建一个卡片列表view作为卡片展示区,卡片列表view可以专门存放和管理每个卡片。
然后,可以创建一个父类卡片,父类卡片中设置有基本元素和基本控件。示例性的,创建一个父类卡片的方式可以为:
创建一个父类的卡片cell,并为父类的卡片cell添加滑动手势pan Gesture,以在用户滑动卡片时,控制卡片做transform形变,当用户停止滑动并离开触摸点,判断transform形变是否达到设定尺寸(例如屏幕size的二分之一),以确定是否移除卡片。
例如,可以判断transform形变是否滚动出屏幕size的二分之一。如果transform形变达到屏幕size的二分之一,可以生成卡片切换指令,以便后续进行卡片切换。如果transform形变没有达到屏幕size的二分之一,可以还原该卡片。
还可以为父类的卡片cell添加卡片移除动画,在卡片移出屏幕时播放。
通过此种方式创建一个父类卡片,可以把通用的基本元素(例如卡片移除动画)和基本控件(例如滑动手势pan Gesture)添加到其中,便于后续子卡片的创建。
创建一个父类卡片之后,后续可以基于父类卡片创建子卡片,由于子卡片的创建依赖于数据类型(例如有图片、文字、视频等多种类型的数据需要展示),不同的数据类型可能需要不同卡片类型的卡片来承载和展示,因此,在创建个性化的子卡片之前,需要先确定需要展示的数据的数据类型(即待展示数据的数据类型)。
示例性的,可以获取数据序列,数据序列含y条待展示数据,且每条待展示数据具有相应的数据类型。
针对数据序列中当前排序第一的目标数据,可以确定出该目标数据的数据类型,然后创建一个继承于父类卡片的子卡片,并基于该目标数据的数据类型,为此子卡片添加个性化控件。例如,针对视频数据的子卡片,需要添加A控件,保证视频的播放;针对图片数据的子卡片,可以添加B控件,便于对图片的展示和操作。
创建好子卡片后,可以将此子卡片放入缓存池,然后从缓存池中确定出此卡片作为目标数据对应的目标卡片单元(目标数据的数据类型与目标卡片单元的卡片类型相对应)。
得到卡片类型与此目标数据的数据类型对应的目标卡片单元后,可以将该目标数据添加到此目标卡片单元中,从而得到一张待展示卡片。再从数据序列中删除此目标数据,数据序列中剩余的待展示数据的排序就依次调整即可,原来第二条的待展示数据的排序从原来的第二变为现在的第一,以此类推。
而后,可以将得到的待展示卡片置于卡片列表view的底层(可以调节大小和位置,放置在卡片列表view上,每次新进卡片列表view的待展示卡片放置在最底层),直到卡片列表view中添加至x张待展示卡片。之后,即可对卡片列表view中位于最顶层的一张待展示卡片进行展示。
需要说明的是,由于每次生成待展示卡片,需要“消耗”一条待展示数据,而数据序列中的待展示数据不需要实时更新(实时更新:每消耗一条就补上一条),可以进行阶段性的更新(消耗一定数量的待展示数据之后再补充一次,补充至固定数量,例如,每消耗10条数据,进行一次补充,补充至20条),因此,数据序列中待展示数据的数量y’,在不同的时候,可以有不同的值(例如第一次,y’=20,第二次,y’=19,第三次,y’=18,……第十次,y’=11,第十一次,数据序列补充20条,y’=20),此处不作限定。
具体的,在从数据序列中删除目标数据后,就可以检测数据序列中待展示数据的剩余数量。当剩余数量不足z条(例如11条)时,可以拉取新的待展示数据列于现有数据序列的末尾,以将数据序列中的待展示数据的数量补充至y条(例如,y=20),这样可以及时补足数据序列中待展示数据的数量,也不用实时补充,可以降低资源消耗。
另外,对于x、y、z的取值,可以为:x=4,y≤20,z∈[0,16]。此处的x、y、z,以分别取值为x=4、y=20、z=11为例进行说明,不应视为对本申请对的限定。
通过这样的处理方式可以构建卡片式列表运行的基础,创建子卡片后添加个性化控件即可得到相应的目标卡片单元,从而进一步将目标数据添加到其中得到待展示卡片。在初始阶段,缓存池中卡片较少,卡片类型相对单一,随着卡片式列表运行时长的增加,展示过的卡片数量提升,缓存池中缓存的卡片就丰富起来,等到缓存池中缓存的卡片达到nx(n为卡片类型的数量,x为卡片展示区内叠置的卡片数量)时,即可应对所有的场景,不需要再创建新的卡片。
实现卡片式列表的效果如图3和图4所示:图3为页面实现卡片式列表的效果图;图4为实现卡片式列表的效果页面的布局层次图。
当展示的卡片被用户操作需要进行切换时,可以执行步骤S10。
步骤S10:获取卡片切换指令,并基于所述卡片切换指令将卡片展示区的当前卡片移除,展示下一张卡片,其中,所述卡片展示区内叠置x张卡片。
在本实施例中,可以获取基于用户的操作而生成的卡片切换指令(卡片切换指令的生成方式请参阅前文对父类卡片添加的基础控件部分的介绍),基于卡片切换指令将卡片展示区的当前卡片移除,展示下一张卡片。此处,卡片展示区内叠置有x张卡片。
而后,可以执行步骤S20。
步骤S20:从预先获取的数据序列中确定出当前排序第一的目标数据,并确定出所述目标数据的数据类型,其中,所述数据序列含y条待展示数据,且每条待展示数据具有相应的数据类型。
在本实施例中,可以从预先获取的数据序列中确定出当前排序第一的目标数据,并确定出目标数据的数据类型。数据序列含y条待展示数据,且每条待展示数据具有相应的数据类型。
确定出目标数据的数据类型后,可以执行步骤S30。
步骤S30:判断移除的当前卡片的卡片类型与所述目标数据的数据类型是否对应。
在本实施例中,可以确定出移除的当前卡片的卡片类型,以及,将当前卡片的卡片类型与目标数据的数据类型进行比对,判断二者的类型是否对应。
根据当前卡片的卡片类型与目标数据的数据类型之间的比对结果,可以执行步骤S40。
步骤S40:若对应,确定移除的当前卡片为所述目标卡片单元;若不对应,将移除的当前卡片置入缓存池中进行缓存,并从缓存池中确定出卡片类型与所述目标数据的数据类型对应的目标卡片单元,其中,缓存池中存储有多种卡片类型的卡片。
在本实施例中,若当前卡片的卡片类型与目标数据的数据类型对应,可以确定移除的当前卡片为目标卡片单元。由于当前卡片的卡片类型与目标数据的数据类型对应,则无需从缓存池中查找相应的卡片作为目标卡片单元,而是直接将当前卡片作为目标卡片单元,不仅可以省去从缓存池中查找卡片的过程,还可以省去将当前卡片置入缓存池的过程。
若当前卡片的卡片类型与目标数据的数据类型不对应,则需要将移除的当前卡片置入缓存池中进行缓存,并从缓存池中确定出卡片类型与目标数据的数据类型对应的目标卡片单元,缓存池中存储有多种卡片类型的卡片。
示例性的,对于从缓存池中确定出卡片类型与目标数据的数据类型对应的目标卡片单元的方式,可以为:判断缓存池中是否存在卡片类型与目标数据的数据类型对应的卡片;若存在,则可以直接确定此卡片为目标卡片单元;若不存在,则需要创建卡片类型与目标数据的数据类型对应的卡片,然后放入缓存池,再从缓存池中确定此新建的卡片作为目标卡片单元。
确定出目标卡片单元后,可以执行步骤S50。
步骤S50:将所述目标数据更新到所述目标卡片单元,得到一张待展示卡片,将所述待展示卡片置于所述卡片展示区的底层,并从所述数据序列中删除所述目标数据。
在本实施例中,可以将目标数据更新到目标卡片单元,得到一张待展示卡片,从而将待展示卡片置于卡片展示区的底层。由于将当前卡片切出,导致卡片展示区的卡片变为x-1张,而将待展示卡片置于卡片展示区的底层后,卡片展示区的卡片变为x张,且层级发生相应的变化。
之后,可以从数据序列中删除目标数据,并将数据序列中剩余的待展示数据的排序进行相应调整。直到检查到数据序列中待展示数据的剩余数量不足z条时,拉取一次数据,对数据序列进行补充。
通过将卡片展示区(其内叠置x张卡片)的当前卡片移除,展示下一张卡片;从预先获取的数据序列(含y条待展示数据)中确定出当前排序第一的目标数据,并确定出目标数据的数据类型;然后判断移除的当前卡片的卡片类型与目标数据的数据类型是否对应;若对应,确定移除的当前卡片为目标卡片单元(可以理解为卡片模板,有不同类型的卡片模板);若不对应,将移除的当前卡片置入缓存池中进行缓存,并从缓存池中确定出卡片类型与目标数据的数据类型对应的目标卡片单元,将目标数据更新到目标卡片单元,得到一张待展示卡片,再将待展示卡片置于卡片展示区的底层,并从数据序列中删除目标数据。这样的方式,可以实现卡片的复用,移除的当前卡片如果符合条件(类型匹配),可以直接利用(作为目标卡片单元),如果不符合条件(类型不匹配),可以置入缓存池中缓存待用。这样的方式,确定出目标卡片单元后无需创建新的卡片,且仅在当前卡片不符合条件且缓存池中没有符合条件的卡片时才涉及到创建卡片,因此可以有效降低卡片的创建次数。而缓存池中仅需缓存少量的卡片(缓存池内缓存所有类型的每个类型的卡片不超过x张),即可满足所有应用场景,能大大降低缓存卡片占用的内存。因此,本方案能够有效处理卡片式列表实现方案面临的CPU过多占用和内存过多消耗的问题,提升用户体验。
基于同一发明构思,本申请实施例提供一种基于iOS的卡片式列表的展示装置20。请参阅图5,基于iOS的卡片式列表的展示装置20可以包括:
卡片切换模块21,用于获取卡片切换指令,并基于所述卡片切换指令将卡片展示区的当前卡片移除,展示下一张卡片,其中,所述卡片展示区内叠置x张卡片。
目标数据确定模块22,用于从预先获取的数据序列中确定出当前排序第一的目标数据,并确定出所述目标数据的数据类型,其中,所述数据序列含y条待展示数据,且每条待展示数据具有相应的数据类型。
判断模块23,用于判断移除的当前卡片的卡片类型与所述目标数据的数据类型是否对应。
目标卡片单元确定模块24,用于在移除的当前卡片的卡片类型与所述目标数据的数据类型对应时,确定移除的当前卡片为所述目标卡片单元;用于在移除的当前卡片的卡片类型与所述目标数据的数据类型不对应时,将移除的当前卡片置入缓存池中进行缓存,并从缓存池中确定出卡片类型与所述目标数据的数据类型对应的目标卡片单元,其中,缓存池中存储有多种卡片类型的卡片。
待展示卡片生成模块25,用于将所述目标数据更新到所述目标卡片单元,得到一张待展示卡片,将所述待展示卡片置于所述卡片展示区的底层,并从所述数据序列中删除所述目标数据。
在本实施例中,目标卡片单元确定模块24,具体用于判断缓存池中是否存在卡片类型与所述目标数据的数据类型对应的卡片;若存在,确定此卡片为所述目标卡片单元;若不存在,创建卡片类型与所述目标数据的数据类型对应的卡片并放入缓存池,再从缓存池中确定此卡片为所述目标卡片单元。
在本实施例中,基于iOS的卡片式列表的展示装置20还包括初始构建模块,用于在卡片切换模块21获取卡片切换指令之前,创建一个卡片列表view作为卡片展示区;创建一个父类卡片,其中,父类卡片中设置有基本元素和基本控件;获取数据序列,其中,所述数据序列含y条待展示数据,且每条待展示数据具有相应的数据类型;针对所述数据序列中当前排序第一的目标数据,确定出该目标数据的数据类型,创建一个继承于所述父类卡片的子卡片,并基于该目标数据的数据类型,为此子卡片添加个性化控件,得到卡片类型与此目标数据的数据类型对应的目标卡片单元,然后将该目标数据添加到此目标卡片单元中,得到一张待展示卡片,再从所述数据序列中删除所述目标数据,并将此待展示卡片置于所述卡片列表view的底层,直到卡片列表view中添加至x张待展示卡片;对所述卡片列表view中位于最顶层的一张待展示卡片进行展示。
在本实施例中,初始构建模块,具体用于创建一个父类的卡片cell;为父类的卡片cell添加滑动手势pan Gesture,以在用户滑动卡片时,控制卡片做transform形变,当用户停止滑动并离开触摸点,判断transform形变是否达到设定尺寸,以确定是否移除卡片;为父类的卡片cell添加卡片移除动画,以在卡片移出屏幕时播放。
在本实施例中,初始构建模块,具体用于判断transform形变是否达到屏幕size的二分之一;若transform形变达到屏幕size的二分之一,生成卡片切换指令;若transform形变未达到屏幕size的二分之一,还原该卡片。
在本实施例中,基于iOS的卡片式列表的展示装置20还包括数据序列补足模块,用于在待展示卡片生成模块25从所述数据序列中删除所述目标数据后,检测所述数据序列中待展示数据的剩余数量;当所述剩余数量不足z条时,拉取新的待展示数据列于所述数据序列的末尾,以将所述数据序列中的待展示数据的数量补充至y条。
本申请实施例还提供一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行第一方面或第一方面的可能的实现方式中任一项所述的基于iOS的卡片式列表的展示方法。
综上所述,本申请实施例提供一种基于iOS的卡片式列表的展示方法、装置、介质及设备,通过将卡片展示区(其内叠置x张卡片)的当前卡片移除,展示下一张卡片;从预先获取的数据序列(含y条待展示数据)中确定出当前排序第一的目标数据,并确定出目标数据的数据类型;然后判断移除的当前卡片的卡片类型与目标数据的数据类型是否对应;若对应,确定移除的当前卡片为目标卡片单元(可以理解为卡片模板,有不同类型的卡片模板);若不对应,将移除的当前卡片置入缓存池中进行缓存,并从缓存池中确定出卡片类型与目标数据的数据类型对应的目标卡片单元,将目标数据更新到目标卡片单元,得到一张待展示卡片,再将待展示卡片置于卡片展示区的底层,并从数据序列中删除目标数据。这样的方式,可以实现卡片的复用,移除的当前卡片如果符合条件(类型匹配),可以直接利用(作为目标卡片单元),如果不符合条件(类型不匹配),可以置入缓存池中缓存待用。这样的方式,确定出目标卡片单元后无需创建新的卡片,且仅在当前卡片不符合条件且缓存池中没有符合条件的卡片时才涉及到创建卡片,因此可以有效降低卡片的创建次数。而缓存池中仅需缓存少量的卡片(缓存池内缓存所有类型的每个类型的卡片不超过x张),即可满足所有应用场景,能大大降低缓存卡片占用的内存。因此,本方案能够有效处理卡片式列表实现方案面临的CPU过多占用和内存过多消耗的问题,提升用户体验。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种基于iOS的卡片式列表的展示方法,其特征在于,包括:
获取卡片切换指令,并基于所述卡片切换指令将卡片展示区的当前卡片移除,展示下一张卡片,其中,所述卡片展示区内叠置x张卡片;
从预先获取的数据序列中确定出当前排序第一的目标数据,并确定出所述目标数据的数据类型,其中,所述数据序列含y条待展示数据,且每条待展示数据具有相应的数据类型;
判断移除的当前卡片的卡片类型与所述目标数据的数据类型是否对应;
若对应,确定移除的当前卡片为所述目标卡片单元;若不对应,将移除的当前卡片置入缓存池中进行缓存,并从缓存池中确定出卡片类型与所述目标数据的数据类型对应的目标卡片单元,其中,缓存池中存储有多种卡片类型的卡片;
将所述目标数据更新到所述目标卡片单元,得到一张待展示卡片,将所述待展示卡片置于所述卡片展示区的底层,并从所述数据序列中删除所述目标数据。
2.根据权利要求1所述的基于iOS的卡片式列表的展示方法,其特征在于,从缓存池中确定出卡片类型与所述目标数据的数据类型对应的目标卡片单元,包括:
判断缓存池中是否存在卡片类型与所述目标数据的数据类型对应的卡片;
若存在,确定此卡片为所述目标卡片单元;
若不存在,创建卡片类型与所述目标数据的数据类型对应的卡片并放入缓存池,再从缓存池中确定此卡片为所述目标卡片单元。
3.根据权利要求1所述的基于iOS的卡片式列表的展示方法,其特征在于,在获取卡片切换指令之前,所述方法还包括:
创建一个卡片列表view作为卡片展示区;
创建一个父类卡片,其中,父类卡片中设置有基本元素和基本控件;
获取数据序列,其中,所述数据序列含y条待展示数据,且每条待展示数据具有相应的数据类型;
针对所述数据序列中当前排序第一的目标数据,确定出该目标数据的数据类型,创建一个继承于所述父类卡片的子卡片,并基于该目标数据的数据类型,为此子卡片添加个性化控件,得到卡片类型与此目标数据的数据类型对应的目标卡片单元,然后将该目标数据添加到此目标卡片单元中,得到一张待展示卡片,再从所述数据序列中删除所述目标数据,并将此待展示卡片置于所述卡片列表view的底层,直到卡片列表view中添加至x张待展示卡片;
对所述卡片列表view中位于最顶层的一张待展示卡片进行展示。
4.根据权利要求3所述的基于iOS的卡片式列表的展示方法,其特征在于,创建一个父类卡片的方式为:
创建一个父类的卡片cell;
为父类的卡片cell添加滑动手势pan Gesture,以在用户滑动卡片时,控制卡片做transform形变,当用户停止滑动并离开触摸点,判断transform形变是否达到设定尺寸,以确定是否移除卡片;
为父类的卡片cell添加卡片移除动画,以在卡片移出屏幕时播放。
5.根据权利要求4所述的基于iOS的卡片式列表的展示方法,其特征在于,判断transform形变是否达到设定尺寸,以确定是否移除卡片,包括:
判断transform形变是否达到屏幕size的二分之一;
若transform形变达到屏幕size的二分之一,生成卡片切换指令;
若transform形变未达到屏幕size的二分之一,还原该卡片。
6.根据权利要求3所述的基于iOS的卡片式列表的展示方法,其特征在于,在从所述数据序列中删除所述目标数据后,所述方法还包括:
检测所述数据序列中待展示数据的剩余数量;
当所述剩余数量不足z条时,拉取新的待展示数据列于所述数据序列的末尾,以将所述数据序列中的待展示数据的数量补充至y条。
7.根据权利要求6所述的基于iOS的卡片式列表的展示方法,其特征在于,x=4,y≤20,z∈[0,16]。
8.一种基于iOS的卡片式列表的展示装置,其特征在于,包括:
卡片切换模块,用于获取卡片切换指令,并基于所述卡片切换指令将卡片展示区的当前卡片移除,展示下一张卡片,其中,所述卡片展示区内叠置x张卡片;
目标数据确定模块,用于从预先获取的数据序列中确定出当前排序第一的目标数据,并确定出所述目标数据的数据类型,其中,所述数据序列含y条待展示数据,且每条待展示数据具有相应的数据类型;
判断模块,用于判断移除的当前卡片的卡片类型与所述目标数据的数据类型是否对应;
目标卡片单元确定模块,用于在移除的当前卡片的卡片类型与所述目标数据的数据类型对应时,确定移除的当前卡片为所述目标卡片单元;用于在移除的当前卡片的卡片类型与所述目标数据的数据类型不对应时,将移除的当前卡片置入缓存池中进行缓存,并从缓存池中确定出卡片类型与所述目标数据的数据类型对应的目标卡片单元,其中,缓存池中存储有多种卡片类型的卡片;
待展示卡片生成模块,用于将所述目标数据更新到所述目标卡片单元,得到一张待展示卡片,将所述待展示卡片置于所述卡片展示区的底层,并从所述数据序列中删除所述目标数据。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至7中任一项所述的基于iOS的卡片式列表的展示方法。
10.一种电子设备,其特征在于,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,所述程序指令被处理器加载并执行时实现权利要求1至7中任一项所述的基于iOS的卡片式列表的展示方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210971597.9A CN115269104A (zh) | 2022-08-12 | 2022-08-12 | 基于iOS的卡片式列表的展示方法、装置、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210971597.9A CN115269104A (zh) | 2022-08-12 | 2022-08-12 | 基于iOS的卡片式列表的展示方法、装置、介质及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115269104A true CN115269104A (zh) | 2022-11-01 |
Family
ID=83751532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210971597.9A Pending CN115269104A (zh) | 2022-08-12 | 2022-08-12 | 基于iOS的卡片式列表的展示方法、装置、介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115269104A (zh) |
-
2022
- 2022-08-12 CN CN202210971597.9A patent/CN115269104A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112866785B (zh) | 图片生成方法、装置、设备及存储介质 | |
CN107315580B (zh) | 用户界面的组件处理方法、装置及设备、可读介质 | |
CN102770840B (zh) | 数据结构映射和导航 | |
CN111371953A (zh) | 标记数据处理方法、设备及存储介质 | |
CN109569214B (zh) | 分屏模式下的应用显示方法及装置、显示设备 | |
CN113655895B (zh) | 应用于输入法的信息推荐方法、装置及电子设备 | |
CN113312135B (zh) | 一种列表展示方法、装置、计算机设备及存储介质 | |
CN106708478B (zh) | 滚动视图显示方法及装置 | |
CN116866661A (zh) | 一种视频预渲染方法、装置、设备及存储介质 | |
CN115269104A (zh) | 基于iOS的卡片式列表的展示方法、装置、介质及设备 | |
CN108401455B (zh) | 一种多系统控制方法、控制装置及移动终端 | |
CN116049453A (zh) | 图片集播放方法及其装置、设备、介质 | |
CN112417345B (zh) | 渲染方法、装置、电子设备及存储介质 | |
CN114092608B (zh) | 表情的处理方法及装置、计算机可读存储介质、电子设备 | |
CN110287437B (zh) | 网页截图方法、装置、存储介质及终端 | |
CN110727387B (zh) | 确定用户行为数据的方法、装置及计算机存储介质 | |
CN114816597A (zh) | 一种内容展示方法、装置和计算机可读存储介质 | |
CN115248891A (zh) | 一种页面展示方法、装置、电子设备和存储介质 | |
CN112433723A (zh) | 个性化列表开发方法及装置 | |
US20210165568A1 (en) | Method and electronic device for configuring touch screen keyboard | |
CN111782333B (zh) | 游戏中的界面显示方法、装置、存储介质与终端设备 | |
CN114676071B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN113961843A (zh) | 一种页面列表刷新方法、装置、电子设备以及存储介质 | |
CN112732464A (zh) | 粘贴方法、装置及电子设备 | |
CN117908914A (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 |