iOS 造轮子之循环滚动的bannerView(OC)
2017-08-25 本文已影响0人
LazyLoad
BHBannerView.gif
今天 这个轮子是 可以循环滚动的 banner 支持只文字 循环 或者图片banner的循环!!
网上也有很多这方面大神的 第三方库 我也是和别人学习 希望有一个自己的循环库
废话不多说,看看我的能给大家带来什么。。。
先说这个库如何使用(导入头文件那些话不说了)
图片轮播:
实例化对象,遵守协议,实现协议中的两个方法
BHBannerCircleViewCustom *bannerView = [[BHBannerCircleViewCustom alloc] initWithDelegate:self];
bannerView.frame = CGRectMake(0, 20, self.view.bounds.size.width, 200);
[self.view addSubview:bannerView];
bannerView.scrollDirection = UICollectionViewScrollDirectionVertical;
bannerView.scrollDuration = 1.5;
/**
必须实现的代理方法,返回总页数
@param bannerCircleView bannerCircleView
@return 返回总的页数
*/
- (NSInteger)numberOfPagesForBannerCircleView:(BHBannerCircleView *)bannerCircleView;
/**
设置cell数据源
@param bannerCircleView bannerCircleView
@param cell cell的类型由注册时候决定,需要转换为相应的类型来使用
@param index index
*/
- (void)bannerCircleView:(BHBannerCircleView *)bannerCircleView setupPageCell:(UICollectionViewCell *)cell withIndex:(NSInteger)index;
还有一种需求是只有文字的循环:比如展示中奖信息
用法与上一种类似
BHTextOnlyCircleView *textOnlyView = [[BHTextOnlyCircleView alloc] initWithDelegate:self];
textOnlyView.backgroundColor = [UIColor orangeColor];
textOnlyView.frame = CGRectMake(0, 250, self.view.bounds.size.width, 30);
[self.view addSubview:textOnlyView];
_textOnlyView = textOnlyView;
网上类似的确实很多,我觉得这个库提供一个很好的思路,就是更灵活。
如果我们有别的需求,不是单纯的文字,或者单纯的图片轮播,我们也可以自己写一个,方法如下:
自定义View,继承自BHBannerCircleView,实现子类里的两个方法,具体方法可以参考我的。
// 子类实现
- (void)registerCellForCollectionView:(UICollectionView *)collectionView
{
}
// 子类实现
- (UICollectionViewCell *)dequeueReuseableCellForCollectionView:(UICollectionView *)collectionView withIndexPath:(NSIndexPath *)indexPath
{
return nil;
}
这样你就可以循环任何你想循环的东西了!!
你想看里面的具体代码,先给个star吧
GitHub地址:https://github.com/BaiHan1989/BHBannerView.git