列表显示方法及装置与流程

文档序号:11198869阅读:242来源:国知局
本发明涉及计算机
技术领域
:,具体而言,涉及一种列表显示方法及装置。
背景技术
::在osx操作系统中,苹果为开发者提供了一套软件开发工具包(sdk)用于开发者在mac电脑上的软件开发,在sdk的appkit中提供了一套基于视图(view)的系统列表的实现方法,开发者只需按照开发文档上列表的实现即可创建相应需求的列表用于开发。然而,目前系统列表在滚动的过程中经常会出现明显的卡顿,即使对业务逻辑进行优化,列表性能也无法提升。针对上述问题,目前大多是从业务层次上进行优化,控件仍然采用的苹果提供的列表控件。由于苹果提供的sdk代码是闭源的,开发者无法获取到接口实现代码,也就无法从底层实现进行优化。技术实现要素:为了克服现有技术中的上述不足,本发明的目的在于提供一种列表显示方法及装置,可以使软件开发工具包的列表实现具有更优越的性能,减少了列表在滚动过程中的卡顿现象,实现了更好的交互体验。为了实现上述目的,本发明较佳实施例采用的技术方案如下:本发明较佳实施例提供一种列表显示方法,应用于用户终端,所述用户终端安装有软件开发工具包,所述软件开发工具包包括列表视图以及与所述列表视图对应的滚动视图,所述列表视图上包括多个单元格图层。所述方法包括:所述滚动视图响应用户终端上的滚动事件,根据所述滚动事件对应进行滚动;所述列表视图获取所述滚动视图在滚动过程中的视图边界信息;根据所述视图边界信息更新所述列表视图上的单元格图层位置;将更新后的单元格图层进行显示。在本发明较佳实施例中,所述方法还包括:配置所述列表视图,在所述列表视图上添加列表图层,并在所述列表图层上配置单元格图层;配置滚动视图,使滚动视图覆盖于所述列表视图上,所述滚动视图用于响应用户终端上的滚动事件。在本发明较佳实施例中,所述根据所述视图边界信息更新所述列表视图上的单元格图层位置的步骤,包括:将移出所述列表视图范围的单元格图层进行销毁,将移入所述列表视图范围的单元格图层进行创建,将未移出所述列表视图范围的单元格图层进行保留。在本发明较佳实施例中,所述将更新后的单元格图层进行显示的步骤,还包括:根据所述单元格图层在所述列表视图上的位置的更新情况展示滚动动画。在本发明较佳实施例中,所述方法还包括:响应基础图层类的创建请求,创建多个基础图层类,所述基础图层类用于覆盖对应的单元格图层,其中,所述基础图层类继承于系统图层,所述系统图层用于对点击事件进行响应和点击事件进行传递。在本发明较佳实施例中,所述方法还包括:所述基础图层检测所述列表视图上的点击事件;在检测到所述列表视图上的点击事件时,执行所述点击事件,并将所述点击事件传递给父图层,以使所述父图层根据所述点击事件进行反馈。本发明较佳实施例提供一种列表显示装置,应用于用户终端,所述用户终端安装有软件开发工具包,所述软件开发工具包包括列表视图以及与所述列表视图对应的滚动视图,所述列表视图上包括多个单元格图层。所述装置包括:滚动模块,用于所述滚动视图响应用户终端上的滚动事件,根据所述滚动事件对应进行滚动;获取模块,用于所述列表视图获取所述滚动视图在滚动过程中的视图边界信息;更新模块,用于根据所述视图边界信息更新所述列表视图上的单元格图层位置;显示模块,用于将更新后的单元格图层进行显示。相对于现有技术而言,本发明具有以下有益效果:本发明实施例提供的列表显示方法及装置,该方法包括:滚动视图响应用户终端上的滚动事件,根据所述滚动事件对应进行滚动;列表视图获取所述滚动视图在滚动过程中的视图边界信息;根据所述视图边界信息更新列表视图上的单元格图层位置;将更新后的单元格图层进行显示。基于上述设计,本发明可以使软件开发工具包的列表实现具有更优越的性能,减少了列表在滚动过程中的卡顿现象,实现了更好的交互体验。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1为本发明较佳实施例提供的用户终端的方框示意图;图2为本发明较佳实施例提供的列表显示方法的一种流程示意图;图3为本发明较佳实施例提供的列表显示方法的另一种流程示意图;图4为本发明较佳实施例提供的列表显示方法的另一种流程示意图;图5为本发明较佳实施例提供的列表显示装置的一种功能模块图;图6为本发明较佳实施例提供的列表显示装置的另一种功能模块图;图7为本发明较佳实施例提供的列表显示装置的另一种功能模块图。图标:100-用户终端;110-存储器;120-处理器;130-通信单元;140-存储控制器;150-显示单元;200-列表显示装置;201-第一配置模块;202-第二配置模块;210-滚动模块;220-获取模块;230-更新模块;240-显示模块;250-创建模块;260-检测模块;270-执行模块。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语"第一"、"第二"等仅用于区分描述,而不能理解为指示或暗示相对重要性。下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。请参阅图1,为本发明较佳实施例提供的用户终端100的方框示意图。本发明实施例中,所述用户终端100上安装有软件开发工具包(softwaredevelopmentkit,sdk),所述sdk可用于开发者为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具。本实施例中,所述用户终端100可以是,但不限于,个人电脑(personalcomputer,pc)、笔记本电脑、平板电脑、个人数字助理(personaldigitalassistant,pda)、移动上网设备(mobileinternetdevice,mid)等。优选地,在本实施例中,所述用户终端100的操作系统为osx系统。如图1所示,所述用户终端100可以包括存储器110、处理器120、通信单元130、存储控制器140以及显示单元150。所述存储器110、处理器120、通信单元130、存储控制器140以及显示单元150相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器110中存储有列表显示装置200,所述列表显示装置200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器110中的软件功能模块,所述处理器120通过运行存储在存储器110内的软件程序以及模块,如本发明实施例中的列表显示装置200,从而执行各种功能应用以及数据处理,即实现本发明实施例中的列表显示方法。其中,所述存储器110可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器110可进一步包括相对于处理器120远程设置的远程存储器,这些远程存储器可以通过网络连接至所述用户终端100。上述网络的实例可以包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器110用于存储程序,所述处理器120在接收到执行指令后,执行所述程序。进一步地,通信单元130将各种输入/输入装置耦合至处理器120以及存储器110,上述存储器110内的软件程序以及模块还可包括操作系统,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通讯,从而提供其他软件组件的运行环境。所述处理器120可以是一种集成电路芯片,具有信号的处理能力。上述的处理器120可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等。还可以是数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器120也可以是任何常规的处理器等。所述显示单元150可以在所述用户终端100与用户(开发者)之间同时提供一个输出及输入界面。具体地,所述显示单元150向用户显示视频或者图像输出,这些视频输出的内容可包括文字、图形、视频、及其任意组合。一些输出结果是对应于一些用户界面对象。此外,所述显示单元150还可以接收用户的输入,例如用户的点击、滑动等手势操作,以便用户界面对象对这些用户的输入做出响应。检测用户输入的技术可以是基于电阻式、电容式或者其他任意可能的触控检测技术。可选地,所述显示单元150的具体实例可以包括但并不限于液晶显示器或发光聚合物显示器。可以理解,图1所示的结构仅为示意,所述用户终端100还可以包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。苹果提供的软件开发工具包(sdk)提供的列表控件在设计上主要负责位图渲染,而视图控件是在图层基础上的封装,视图层可以用于响应如点击、手势等事件。此外,复杂视图(如系统列表)内部的重绘策略则由系统实现管理。系统列表在向上(或者向下)滚动时,经发明人测试发现每个视图中的单元格(cell)上的元素都在进行重新绘制,然而实际上可见区域大部分单元格的内容并没有发生变化,实际只需要重绘进入的新的单元格即可。但是,由于是系统的列表实现,这种重绘策略在开发者层面是无法控制的,从而导致在列表数据特别多,展示数据的列表视图层次特别复杂的情况下,系统列表在滚动的过程中会出现明显的卡顿,即使开发者对业务逻辑进行优化,列表性能也无法提升,由此说明系统提供的列表实现,在性能方面也有瓶颈。请参阅图2,为本发明较佳实施例提供的列表显示方法的一种流程示意图,所述方法由图1中所示的用户终端100执行。所应说明的是,本发明实施例提供的方法不以图2及以下所述的具体顺序为限制。所述方法的具体流程如下:步骤s210,滚动视图响应用户终端100上的滚动事件,根据所述滚动事件对应进行滚动。本实施例中,所述软件开发工具包(sdk)可包括列表视图以及与所述列表视图对应的滚动视图,所述列表视图上包括多个单元格图层,每个单元格图层即对应所述用户终端100显示的列表中的每个列表项。在本实施例中,所述滚动事件可以是鼠标上的滚动轮发生的滚动事件,也可以是用户在所述用户终端100上的触摸滑动发生的滚动事件,本实施例中对此不作具体限制。所述滚动视图(scrollview)可用于检测所述用户终端100上的滚动事件,在检测到滚动事件时,根据所述滚动事件对应进行滚动。以鼠标为例,鼠标的滚动轮向上滚动时,所述滚动视图可以检测向上滚动的滚动事件,从而根据所述滚动事件对应向上进行滚动。步骤s220,列表视图获取所述滚动视图在滚动过程中的视图边界信息。步骤s230,根据所述视图边界信息更新所述列表视图上的单元格图层位置。步骤s240,将更新后的单元格图层进行显示。本实施例中,所述列表视图(tableview)观察滚动视图在滚动过程中在所述用户终端100上的边界(bounds)的变化情况。详细地,当滚动视图处理滚动事件对应滚动时,首先,列表视图(tableview)观察到边界的改变,获取滚动视图实时的边界信息。然后,根据边界信息更新所述列表视图上的单元格图层位置,具体地,将移出所述列表视图范围的单元格图层进行销毁,将移入所述列表视图范围的单元格图层进行创建,将未移出所述列表视图范围的单元格图层进行保留,在这个过程中,还可以根据所述单元格图层在所述列表视图上的位置的更新情况展示相应的滚动动画,带给用户更加顺畅的滚动体验。详细地,下面以列表向上滑动为例,对所述单元格图层位置的更新过程进行简要说明。首先,所述列表视图在观察到所述滚动视图向上滚动时,对上方移出列表视图范围的单元格图层进行销毁,对下方移入列表的单元格图层进行创建,并设置对应的显示数据;对列表滑动过程中未从上方移出的单元格图层进行保留。容易理解,在其它实施例中,所述列表也可以以其它方向滑动,例如,所述列表还可以向下滑动,或者向左滑动,向右滑动等等,本发明不作具体限制。还需要注意的是,术语“上”、“下”、“左”、“右”等仅是为了便于描述本发明和简化描述,而不是指示或暗示所述列表的滑动方向具有特定的方位、以特定的方位滑动,因此不能理解为对本发明的限制。在实际应用时,由于大部分osx系统软件的列表实现都是采用的系统原生控件,而苹果系统由于其闭源特性,开发者没可能对其进行底层优化。而基于上述设计,本发明可以使列表优化具有了可行性,使得列表在滑动过程中性能更加优越,减少了卡顿现象;其次,本发明实现了系统列表的所有功能和交互,对用户保持了功能和体验的一致性,使得用户感觉不到任何差别,提升了用户的交互体验。进一步地,请参阅图3,在所述步骤s210之前,所述方法还可以包括:步骤s201,配置所述列表视图,在所述列表视图上添加列表图层,并在所述列表图层上配置单元格图层。步骤s202,配置滚动视图,使滚动视图覆盖于所述列表视图上。本实施例中,通过在列表视图上添加列表图层(tablelayer),然后在列表图层(tablelayer)上添加单元格图层,并同时创建覆盖于所述列表视图的滚动视图(scrollview),所述滚动视图scrollview)用于响应用户终端100上的滚动事件。其中,作为优选,所述滚动视图(scrollview)和所述列表视图大小相同。本实施例中,系统的视图(view)控件实现了对事件响应和多层视图中的事件传递。但是系统图层(calayer)控件本身只负责位图渲染,本身接受不到鼠标点击(mousedown,mouseup)事件。如果单元格图层对应的单元格上有按钮响应的需求,那么系统图层则不能满足要求。为了解决上述问题,进一步地,请参阅图4,本实施例中,所述方法还可以包括:步骤s250,响应基础图层类的创建请求,创建多个基础图层类。本实施例中,所述基础图层类(baselayer)用于覆盖对应的单元格图层。其中,所述基础图层类(baselayer)继承于系统图层(calayer),所述系统图层(calayer)用于对点击(mousedown,mouseup)事件进行响应和点击事件进行传递,因而继承于系统图层(calayer)的所有基础图层类(baselayer)也可以用于对点击(mousedown,mouseup)事件进行响应和点击事件进行传递。请再次参阅图4,在实际的实施过程中,所述方法还可以包括:步骤s260,所述基础图层检测所述列表视图上的点击事件。步骤s270,在检测到所述列表视图上的点击事件时,执行所述点击事件,并将所述点击事件传递给父图层。本实施例中,当所述基础图层检测到所述列表视图单上的点击事件时,可调用所述系统图层中创建的鼠标点击的点击响应方法(mousedown)处理相应的点击事件,然后,将点击事件传递给对应的父图层(superlayer),通过调用父图层中创建的点击(mousedown)响应方法,以使所述父图层根据所述点击事件进行相应的点击反馈。进一步地,请参阅图5,本发明较佳实施例还提供一种列表显示装置200,所述装置安装于所述存储器110中并可包括一个或多个由所述处理器120执行的软件功能模块。所述列表显示装置200可以包括:滚动模块210,用于所述滚动视图响应用户终端100上的滚动事件,根据所述滚动事件对应进行滚动。获取模块220,用于所述列表视图获取所述滚动视图在滚动过程中的视图边界信息。更新模块230,用于根据所述视图边界信息更新所述列表视图上的单元格图层位置。显示模块240,用于将更新后的单元格图层进行显示。进一步地,请参阅图6,所述装置还可以包括:第一配置模块201,用于配置所述列表视图,在所述列表视图上添加列表图层,并在所述列表图层上配置单元格图层。第二配置模块202,用于配置滚动视图,使滚动视图覆盖于所述列表视图上,所述滚动视图用于响应用户终端100上的滚动事件。进一步地,请参阅图7,所述装置还可以包括:创建模块250,用于响应基础图层类的创建请求,创建多个基础图层类。所述基础图层类用于覆盖对应的单元格图层。其中,所述基础图层类继承于系统图层,所述系统图层用于对点击事件进行响应和点击事件进行传递。检测模块260,用于所述基础图层检测所述列表视图上的点击事件。执行模块270,用于在检测到所述列表视图上的点击事件时,执行所述点击事件,并将所述点击事件传递给父图层,以使所述父图层根据所述点击事件进行反馈。本实施例中的各功能模块的具体操作方法可参照上述方法实施例中相应步骤的详细描述,在此不再重复赘述。综上所述,本发明实施例提供的列表显示方法及装置,该方法包括:滚动视图响应用户终端100上的滚动事件,根据所述滚动事件对应进行滚动;列表视图获取所述滚动视图在滚动过程中的视图边界信息;根据所述视图边界信息更新列表视图上的单元格图层位置;将更新后的单元格图层进行显示。基于上述设计,本发明可以使软件开发工具包的列表实现具有更优越的性能,减少了列表在滚动过程中的卡顿现象,实现了更好的交互体验。在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,电子设备,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。需要说明的是,在本文中,术语"包括"、"包含"或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句"包括一个……"限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1