iOS-UIScrollview无限循环

UIScrollview,顾名思义,就是一个可以滚动的视图,他的父类是UIView,在开发过程中经常会用到,例如常用的IUTableView就是他的子类.UIScrollview有很多property,这里我们挑一些常用的方法和属性.如图1.1


iOS-UIScrollview无限循环_第1张图片
1.1

    contentSize、contentInset、contentOffset在开发中会经常使用,为了帮助大家理解这里以图形的形式展现三者之间的关系:

iOS-UIScrollview无限循环_第2张图片
1.2

   下面就开始讨论无限循环吧.

    我们知道在scrollview中加入了其他控件后,只要设置contesize,这些控件就可以滚动,那么要实现无限浏览就两种方法:一,无限叠加,就是无限的创建控件,很显然这是不可取的,会大大的消耗系统的内存;另一种就是创建有限个控件,然后重复使用(就是UITableview那样).

    假设要在scrollivew中显示7张图片,那么究竟创建几个UIImageView好呢?其实都可以,两个,三个,四个,五个(一个就不行了),很显然,创建的越少所占内存越少,在这里我们就讨论创建三个.然后让着三个来分别加载不同的图片就OK了!

    假设7张图片(分别为0,1,2,3,4,5,6,),那么在刚开始的时候我们创建三个UIImageView,分别加载6,0,1这三张图片,如图1.3

iOS-UIScrollview无限循环_第3张图片
1.3

    然后让scrollview通过setContentOffset显示中间这张0即可,继续滑动看到1,迅速让3个UIImageView重新加载0,1,2,再通过setContentOffset显示中间1这张图片即可,如图:1.4

iOS-UIScrollview无限循环_第4张图片
1.4

另外注意的是尽量不要在scrollViewDidScroll(scrollview正在滚动的时候)做一些事情,因为scrollViewDidScroll
这个方法很耗性能的.好了,最后再附上运行的效果图以及代码...

github地址   

注:(部分图片采用了KenshinCui)

你可能感兴趣的:(iOS-UIScrollview无限循环)