iOS上下无限轮播滚动,跑马灯效果,简单高效更安全
2020-06-18 本文已影响0人
帅聪哥
前言
话说最近在弄一个上下无限轮播的效果,本来在网上找了两个,结果实在是不严谨,使用过程更是遇到很多闪退问题。看了其中两个源码,都是通过tableview操作的,但是由于操作不但,问题频发出现。最终决定自己写一个了。
先来看看效果 随便展示.gif
使用介绍
1.实现三个必要的代理
数据的总个数
/**item的总个数*/
- (NSInteger)scrollTotalItemCount:(TLVerticalScrollView*)scrollView;
展示的itemview,必须用TLVerticalScrollItem或者其子类
本来想默认实现的,但是感觉还是不太好,干脆由外界提供
- (TLVerticalScrollItem*)scrollViewItemView:(TLVerticalScrollView*)scrollView;
数据刷新的回调,在对应的下标下的数据进行展示
- (void)scrollView:(TLVerticalScrollView*)scrollView itemView:(TLVerticalScrollItem*)itemView index:(NSInteger)index;
2.其他非必要实现的代理-这里挑几个比较好用的
显示的数据个数
/**
同时展现item的数据,比如1个1个滚动,或者同时两个滚动,目前的业务默认为2
默认为2,所以当数据的总个数大于它的时候,才会滚动
*/
- (NSInteger)scrollItemDisplayCount:(TLVerticalScrollView*)scrollView;
滚动的时间间隔 默认为4s
- (NSTimeInterval)scollInterval:(TLVerticalScrollView*)scrollView;
点击事件的回调,如果scrollViewItemCanTapResponse为true才有效果,默认为false
/**
点击对应 的下标
如果需要回调,需要将scrollViewItemCanTapResponse返回true即可
*/
- (void)scollView:(TLVerticalScrollView*)scrollView selectedIndex:(NSInteger)index;
/**
点击事件是否可以响应,默认不响应
*/
- (BOOL)scrollViewItemCanTapResponse:(TLVerticalScrollView*)scrollView;