效果图展示:
在众多的APP中都会有这样一种视图,去展示重点推荐,热门资讯等内容。
在实现的过程中,尝试了几种不同的实现方式:
1,直接在UIScrollView上添加UIImageView子视图:
这种方式可以实现滚动视图,但是在到达UIScrollView的末端的时候就无法循环了。
2,在UIScrollView的开头和结尾分别多添加一个子视图,代表最后一个子视图和第一个子视图。如下图的“4” “1”
在每次滚动到最后一个子视图的时候,再往后滚动的同时
setContentOffset
到真正的第一个子视图,或者在滚动到第一个子视图的时候,在往前滚动的同时setContentOffset
到真正的最后一个子视图。如果这样子实现,在用手指左右滑动的时候,是没有的问题的。但是,如果设置定时器,进行自动循环展示的时候,就会出现从最后一个视图跳转到第一个视图时的动画错误。
3,在UIScrollView上只添加三个子视图,分别代表当前展示的视图,当前视图的前一个视图,当前视图的后面一个视图,称之为contentViews
在实现的时候,每次UIScrollView滚动的同时
contentViews
中的视图随着变换,就可以实现无限循环的效果。
这样实现之后动画就会是连贯的,如本文开始展示的动画效果。
但是现在实现的代码还有缺陷,就是无法处理少于3个子视图的情况。
第三种方法实现的开源代码地址在:WFLoopShowView