一种ios系统中实现分页功能的方法与流程

文档序号:16692653发布日期:2019-01-22 19:03阅读:766来源:国知局
一种ios系统中实现分页功能的方法与流程

本发明涉及分页方法技术领域,具体涉及一种ios系统中实现分页功能的方法。



背景技术:

在当今社会,苹果手机和ios操作系统的普及已经越来越广,因此对于ios系统上app的需求也日益增加,app的内容也越发丰富,很多的app都会用到分页功能,来给不同分类的内容分页,方便用户能够按照分类对内容进行查看。但是现在市面上用到的分页控件,普遍和业务代码的耦合性相当高,无法迅速复用,在多个地方使用时,会产生大量重复代码,使得代码维护异常的困难。而且当分页的数量比较大时,占用的内存也会大增,导致用户界面滑动的卡顿,大大降低了用户体验。



技术实现要素:

本发明的目的在于提供一种ios系统中实现分页功能的方法,该方法可以降低分页控件和业务代码的耦合度并且降低使用分页控件所占用的内存。

为了达到上述技术效果,本发明提供了一种ios系统中实现分页功能的方法,包括以下步骤:

(1)创建父viewcontroller,在所述父viewcontroller上添加分页控件,并且设置所述分页控件的属性;

(2)创建子viewcontroller,在所述子viewcontroller上实现当前页面所需要实现的业务代码;

(3)创建装有所有子viewcontroller的数组,把所有需要显示的页面都添加到一个数组里面,传给所述父viewcontroller的分页控件,用于内容的显示;

(4)创建可以复用的子viewcontroller的数组,把创建过的子viewcontroller,当不使用时,放入到该数组中,当再次创建新的子viewcontroller时,会先在该数组中查找相同标识符的viewcontroller是否存在,如果存在则直接使用,如果不存在则创建新的子viewcontroller。

进一步的技术方案为,所述步骤(2)中创建子viewcontroller时,需要给他指定一个标识符,用于在可以复用的子viewcontroller的数组里面查找是否有已经创建并且不再使用的viewcontroller。

进一步的技术方案为,所述步骤(4)还包括对所述新的子viewcontroller的数据进行配置,完成界面的渲染,当所述新的子viewcontroller不使用时,将其放入可以复用的子viewcontroller的数组中,等待下一次的复用。

进一步的技术方案为,所述步骤(1)中的分页控件的属性包括设置大小、标题栏的一些配置、动画效果。

下面对本发明进行进一步的解释和说明,为了降低分页控件和业务代码的耦合度,采用的是如下技术方案,第一步,新建一个父viewcontroller,上面添加分页控件代码,包括设置大小,标题栏的一些配置,动画效果等等。第二步,创建子viewcontroller,并在在该viewcontroller上实现当前页面所需要实现的业务代码。第三步,把当前子viewcontroller添加到一个数组里面。第四步,重复步骤二,三,直到所有的子viewcontroller都被添加到数组里面。第五步,把viewcontroller数组传给父viewcontroller的分页控件,用于显示界面。一般分页控件的实现方式是在一个viewcontroller中,上面写上分页控件,下面用一个滚动视图来存放分页的内容,当滚动之后,调整控件上显示的当前页面等动画效果,并且显示当前页面的内容。这种方式使得控件代码和页面内容的代码,都在一个文件中,无法分离,耦合度很高。如果需要有多个类似的分页界面,想复用这个分页控件,难度非常的大;如果重写一个新的,则会出现大量重复代码,导致代码的可维护性非常的低。使用本方法,只需要用一个父viewcontroller来存放控件的代码,每个页面的内容,放在一个子viewcontroller中,使用时,仅仅需要把所有的子viewcontroller添加到一个数组中,传给分页控件即可。实现页面内容的代码和控件的代码完全解耦。复用时,仅仅需要传不同的viewcontroller组成的数组就可以实现。

为了降低使用分页控件所需要的内存,采用的是如下技术方案,第一步,创建一个数组,用于存放已经被创建但是并没有使用的viewcontroller的数组。第二步,在创建子viewcontroller之前,首先需要给该viewcontroller添加一个标识符。第三步,通过这个标识符,先去遍历viewcontroller数组,看是否能找到标识符相当的viewcontroller,如果能找到则直接进行第四步,否则就创建一个新的viewcontroller。第四步,对该viewcontroller的数据进行配置,完成界面的渲染。第五步,当当前页面被滚动走了以后,把当前viewcontroller放入数组中,等待下一次的复用。一般分页控件有多少页,就需要创建多少个页面,当页数较多时,会因为创建了大量的页面对象,导致内存占用过高,出现滑动卡顿的问题,影响用户体验。使用本方法,只需要给子viewcontroller添加一个标识符,具有相同的标识符的页面,仅仅会创建一次,当该页面不在被使用时,将他放入复用数组里面,每次需要显示页面时,先去找有没有可以复用的页面,如果有就可以复用,然后改变页面上显示的数据就能渲染出页面,如果没有在创建页面。这样就能大幅度降低创建的页面数量,特别是在有大量相似页面时,能够大幅度的降低内存的消耗,提供app的响应速度,提升用户体验。

本发明具有如下有益效果,本方法降低控件和业务代码耦合度的原理主要是利用了向父viewcontroller添加子viewcontroller的方法,父viewcontroller放分页控件的代码,包括整体的位置大小,标题样式等等控件的内容,而子viewcontroller则存放当前页需要实现的业务代码,达到分页控件的父viewcontroller无需了解子viewcontroller中业务细节,实现解耦的目的。本方法降低内存占用的原理主要利用了viewcontroller复用的方法,当页的界面大致相同,仅仅内容不同时,可以对这种页面添加相同的标志符,当滚动到当前页时,并不会去初始化一个新的viewcontroller,而且从可复用的数组里面,找出一个未使用的viewcontroller,重新配置他的内容,来展示界面,降低了创建的相同的viewcontroller的数量,如果多个页面的布局都大致相同,就能够大幅度的降低内存的占用,提供app响应速度。该方法能够大幅度降低控件和业务代码耦合度和降低内存占用。

附图说明

图1为本发明提供的分页方法的整体效果示意图;

具体实施方式

下面结合附图和具体实施例对本发明进行说明。

实施例1

(1)创建父viewcontroller,在所述父viewcontroller上添加分页控件,并且设置所述分页控件的属性;包括设置大小、标题栏的一些配置、动画效果等;

(2)创建子viewcontroller,在所述子viewcontroller上实现当前页面所需要实现的业务代码;创建子viewcontroller时,需要给他指定一个标识符,用于在可以复用的子viewcontroller的数组里面查找是否有已经创建并且不再使用的viewcontroller;

(3)创建装有所有子viewcontroller的数组,把所有需要显示的页面都添加到一个数组里面,传给所述父viewcontroller的分页控件,用于内容的显示;

(4)创建可以复用的子viewcontroller的数组,把创建过的子viewcontroller,当不使用时,放入到该数组中,当再次创建新的子viewcontroller时,会先在该数组中查找相同标识符的viewcontroller是否存在,如果存在则直接使用,如果不存在则创建新的子viewcontroller;对所述新的子viewcontroller的数据进行配置,完成界面的渲染,当所述新的子viewcontroller不使用时,将其放入可以复用的子viewcontroller的数组中,等待下一次的复用。

如图1所示,图1中标题1,2,3,4部分即为分页控件,内容3部分即为子viewcontroller,用于显示内容,以上两个部分都放在同一个父viewcontroller里面。

尽管这里参照本发明的解释性实施例对本发明进行了描述,上述实施例仅为本发明较佳的实施方式,本发明的实施方式并不受上述实施例的限制,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1