IOS客户端中幻灯视图的无限滚动翻页方法及系统技术方案

技术编号:15329117 阅读:56 留言:0更新日期:2017-05-16 12:52
本发明专利技术公开了一种IOS客户端中幻灯视图的无限滚动翻页方法及系统,涉及IOS客户端幻灯视图开发领域。该方法的步骤为:通过UIView创建容器视图,通过UICollectionView创建列表视图,将列表视图添加至容器视图中;获取需要呈现的子视图的数据源,根据视图排列顺序对所有数据源进行排列,对首尾数据源各添加缓冲数据后,按照排列顺序加载至列表视图中;当滚动翻页至缓冲数据的子视图时,跳转至该缓冲数据对应的数据源的子视图。本发明专利技术能够在占用IOS客户端少量内存的基础上,实现IOS客户端中幻灯视图的无限滚动翻页,而且不需要大量创建和移除新的子视图,显著减少了不必要的计算和开销很大的视图层级操作。

Method and system for unlimited scrolling and scrolling of slide view in IOS client

The invention discloses an unlimited scrolling page turning method and a system of slide view in IOS client, and relates to the development field of IOS client slide view. The method comprises the following steps: create a container view by UIView, create a list view by UICollectionView, will be added to the container view list view; view gets the child need to present the data source, according to the arrangement of views on all data sources are arranged, the buffer data on both the data source, in accordance with the order of loading to the list the view; when scrolling to buffer data view, view jump to the buffer data corresponding to the data source. The invention can take a small amount of memory based on IOS client on the realization of page unlimited IOS client in the slide view, and does not need a lot of create and remove the new view, the view hierarchy significantly reduces much computation and operation unnecessary cost.

【技术实现步骤摘要】
IOS客户端中幻灯视图的无限滚动翻页方法及系统
本专利技术涉及IOS客户端幻灯视图开发领域,具体涉及一种IOS客户端中幻灯视图的无限滚动翻页方法及系统。
技术介绍
现有的IOS客户端查阅幻灯视图时,只能水平或垂直滚动幻灯视图,以对幻灯视图进行翻页,该功能由UIScrollView(苹果开发工具提供的一个滚动视图控件)实现,当滚动幻灯视图至首尾边界或超出首尾边界时,幻灯视图会回弹至首尾边界。随着用户的IOS客户端使用需求的提高,对IOS客户端提出了无限滚动翻页幻灯视图的功能(即从幻灯视图的首页滑动至尾页后,继续在相同方向上滑动时能够复位至首页的幻灯视图)。目前,实现无限滚动翻页幻灯视图的方法为:采用UIScrollView(滚动视图控件)添加若干水平排列的子视图,例如视图A、B和C,视图排列顺序为A、B、C,开始用B视图作为显示视图,当向后滑动结束后手动将视图排列顺序调整为B、C、A,再分别计算滑动结束后A、B和C的偏移量,根据偏移量将C视图移动至屏幕上作为显示视图。但是,上述实现无限滚动翻页幻灯视图的方法应用在IOS客户端时,存在以下缺陷:(1)每次滑动后,均需要计算每幅子视图的偏移量,当子视图的数量较多时,计算大量子视图的偏移量会占用IOS客户端大量的内存,进而降低IOS客户端的工作效率。(2)当支持呈现子视图的数据源发生变化需要重新加载时,会将所有子视图移除后,重新生成和所需的子视图、并添加至UIScrollView的视图层级中去。由于IOS客户端对视图层级的操作(主移除/添加子视图、改变视图的层级关系等)都是耗时操作,因此当UITableView(IOS客户端的简单列表视图控件)或UICollectionview(IOS客户端的容器列表视图控件)高频率的重新加载子视图(即高频率的移除/添加子视图)时,会严重影响IOS客户端的性能,进而降低用户体验。
技术实现思路
针对现有技术中存在的缺陷,本专利技术解决的技术问题为:在占用IOS客户端少量内存的基础上,实现IOS客户端中幻灯视图的无限滚动翻页。本专利技术不需要大量创建和移除新的子视图,显著减少了不必要的计算和开销很大的视图层级操作。为达到以上目的,本专利技术提供的IOS客户端中幻灯视图的无限滚动翻页方法,包括以下步骤:步骤A:通过UIView创建容器视图,通过UICollectionView创建列表视图,将列表视图添加至容器视图中,转到步骤B;步骤B:获取需要呈现的子视图的数据源,根据视图排列顺序对所有数据源进行排列,在第一个数据源之前添加与尾部数据源对应的缓冲数据,在最后一个数据源之后添加与首部数据源对应的缓冲数据,将添加缓冲数据后的所有数据源,按照所述排列顺序加载至步骤A中的列表视图中,转到步骤C;步骤C:当滚动翻页至缓冲数据的子视图时,跳转至该缓冲数据对应的数据源的子视图。在上述方案的基础上,步骤B中所述第一个数据源之前的缓冲数据为倒数第一个数据源,所述最后一个数据源之后的缓冲数据为正数第一个数据源。在上述方案的基础上,步骤B中所述第一个数据源之前的缓冲数据为倒数第一个数据源和倒数第二个数据源,排列顺序为:倒数第一个数据源、倒数第二个数据源、第一个数据源;所述最后一个数据源之后的缓冲数据为正数第一个数据源和正数第二个数据源,排列顺序为:最后一个数据源、正数第一个数据源、正数第二个数据源。在上述方案的基础上,步骤C具体包括以下步骤:设置每个缓冲数据与对应数据源的偏移量;当滚动翻页至缓冲数据的子视图时,根据该缓冲数据的偏移量,跳转至该缓冲数据对应的数据源的子视图。在上述方案的基础上,步骤C之前还包括以下步骤:在IOS客户端的屏幕中,显示步骤B中所述的第一个数据源的子视图。与现有技术相比,本专利技术的优点在于:参见上述步骤B可知,本专利技术预先所有数据源的开头和结尾各设置了缓冲数据,与现有技术中无限滚动翻页时需要计算大量子视图的偏移量相比,本专利技术不需要计算每幅子视图的偏移量,当幻灯视图滚动翻页至缓冲数据的子视图时,能够直接跳转至缓冲数据对应的数据源的子视图,进而利用视觉差来实现无限滚动翻页。因此,本专利技术工作时占用IOS客户端的内存非常小,进而显著提高了IOS客户端的工作效率,提升了用户体验。进一步,参见步骤A和C可知,本专利技术跳转至缓冲数据对应的数据源的子视图时,能够利用UICollectionView的重用机制,从已有的数据源中直接获取需跳转的数据源,进而获取子视图,因此不需要大量创建和移除新的子视图,显著减少了不必要的计算和开销很大的视图层级操作。进一步,参见步骤B和C可知,本专利技术跳转至缓冲数据对应的数据源的子视图时,在内存上只有存在缓冲数据的额外开销,不会常驻大量内存,进一步降低了IOS客户端的内存占用。附图说明图1为本专利技术实施例中IOS客户端中幻灯视图的无限滚动翻页方法的流程图。具体实施方式以下结合附图及实施例对本专利技术作进一步详细说明。参见图1所示,本专利技术实施例中的IOS客户端中幻灯视图的无限滚动翻页方法,包括以下步骤:S1:通过UIView(视图控件)创建容器视图,转到S2。S2:通过UICollectionView创建列表视图,将列表视图添加至容器视图中,转到S3。S3:获取需要呈现的子视图的数据源(每一个呈现出来的视图都需要数据来支持,如一张图片、一个图片链接等),根据视图排列顺序对所有数据源进行排列,例如需要呈现的子视图的所有数据源为7张图片数据,按视图排列顺序编号为1、2、3、4、5、6、7,转到S4。S4:在第一个数据源之前添加与尾部数据源对应的缓冲数据,在最后一个数据源之后添加与首部数据源对应的缓冲数据,将添加缓冲数据后的所有数据源,按照S3中的视图排列顺序加载至S2中的列表视图中,转到S5。S4中缓冲数据的添加方式为:一般前后各添加至少1个数据源(通常为正数第一个数据源和倒数第一个数据源)即可,为使滚动翻页效果更佳平顺,本实施例的S4中在前后各添加2个数据源:第一个数据源之前的缓冲数据为2个,排列顺序为:倒数第一个数据源、倒数第二个数据源、第一个数据源;最后一个数据源之后的缓冲数据也为2个,排列顺序为:最后一个数据源、正数第一个数据源、正数第二个数据源;即在图片数据1添加图片数据6和7,在图片数据7之后添加图片数据1和2,添加后的所有数据源为6、7、1、2、3、4、5、6、7、1、2。S4的原理为:因为UICollectionView在滚动翻页到最后/开头之后是无法继续滚动翻页的,所以为了使UICollectionView在滚动翻页到最后/开头部分之后还可以继续滚动翻页,需要其在滚动到最后/开头之后还有视图可以显示。与此同时,UICollectionView显示视图的数量是由其数据源决定的,因此可以先在数据源开头和结尾分别插入缓冲数据,然后在滚动翻页到缓冲数据时通过设置UICollectionView的偏移量来让其跳转至与开头或结尾的缓冲数据对应的数据源上,进而利用视觉差来实现无限滚动翻页。S5:设置每个缓冲数据与对应数据源的偏移量,例如在6、7、1、2、3、4、5、6、7、1、2中,设置第一个6与第二个6的偏移量,转到S6。S6:在IOS客户端的屏幕中,显示S4中所述的第一个数据源的子视图,当屏幕中的子视图被滚动翻页至缓冲数据的子视图时本文档来自技高网
...
IOS客户端中幻灯视图的无限滚动翻页方法及系统

【技术保护点】
一种IOS客户端中幻灯视图的无限滚动翻页方法,其特征在于,该方法包括以下步骤:步骤A:通过UIView创建容器视图,通过UICollectionView创建列表视图,将列表视图添加至容器视图中,转到步骤B;步骤B:获取需要呈现的子视图的数据源,根据视图排列顺序对所有数据源进行排列,在第一个数据源之前添加与尾部数据源对应的缓冲数据,在最后一个数据源之后添加与首部数据源对应的缓冲数据,将添加缓冲数据后的所有数据源,按照所述排列顺序加载至步骤A中的列表视图中,转到步骤C;步骤C:当滚动翻页至缓冲数据的子视图时,跳转至该缓冲数据对应的数据源的子视图。

【技术特征摘要】
1.一种IOS客户端中幻灯视图的无限滚动翻页方法,其特征在于,该方法包括以下步骤:步骤A:通过UIView创建容器视图,通过UICollectionView创建列表视图,将列表视图添加至容器视图中,转到步骤B;步骤B:获取需要呈现的子视图的数据源,根据视图排列顺序对所有数据源进行排列,在第一个数据源之前添加与尾部数据源对应的缓冲数据,在最后一个数据源之后添加与首部数据源对应的缓冲数据,将添加缓冲数据后的所有数据源,按照所述排列顺序加载至步骤A中的列表视图中,转到步骤C;步骤C:当滚动翻页至缓冲数据的子视图时,跳转至该缓冲数据对应的数据源的子视图。2.如权利要求1所述的IOS客户端中幻灯视图的无限滚动翻页方法,其特征在于:步骤B中所述第一个数据源之前的缓冲数据为倒数第一个数据源,所述最后一个数据源之后的缓冲数据为正数第一个数据源。3.如权利要求2所述的IOS客户端中幻灯视图的无限滚动翻页方法,其特征在于:步骤B中所述第一个数据源之前的缓冲数据为倒数第一个数据源和倒数第二个数据源,排列顺序为:倒数第一个数据源、倒数第二个数据源、第一个数据源;所述最后一个数据源之后的缓冲数据为正数第一个数据源和正数第二个数据源,排列顺序为:最后一个数据源、正数第一个数据源、正数第二个数据源。4.如权利要求1所述的IOS客户端中幻灯视图的无限滚动翻页方法,其特征在于:步骤C具体包括以下步骤:设置每个缓冲数据与对应数据源的偏移量;当滚动翻页至缓冲数据的子视图时,根据该缓冲数据的偏移量,跳转至该缓冲数据对应的数据源的子视图。5.如权利要求1至4任一项所述的IOS客户端中幻灯视图的无限滚动翻页方法,其特征在于:步骤C之前还包括以下步骤:在IOS客户端的屏幕中,显示步骤B中所述的第一个数据源的子视图。6.一种IOS客户端中幻灯视图的无限滚动翻页系统,其特征在于:该方法包括容器视图生成模块、数据源生成加载模块和无限滚动翻页模...

【专利技术属性】
技术研发人员:黄露洋
申请(专利权)人:武汉斗鱼网络科技有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1