iOS-UIScrollview无限循环

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


1.1

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

1.2

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

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

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

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

1.3

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

1.4

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

github地址   

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • *7月8日上午 N:Block :跟一个函数块差不多,会对里面所有的内容的引用计数+1,想要解决就用__block...
    炙冰阅读 2,554评论 1 14
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,262评论 4 61
  • 实现思路 依然是用到UIScrollView,不同的是这次运用重用的思想,因为不管我们有多少张图片要轮播,在UIS...
    Salad可乐阅读 2,541评论 11 1
  • 星座是不是真的那么神奇?从几个月前我就开始关注星座了,也许和很多人一样,经历了一些事情,就变得脆弱开始纠结命运的意...
    拾贰月留白阅读 336评论 0 1
  • 从来没有想过作为英语菜鸟的我会独自一人带着爸妈和公婆来一场澳洲自由行。 出国游计划了大半年,想出国玩的好所以就不想...
    猫司令的碎碎念阅读 919评论 2 6