登录 立即注册
金钱:

Code4App-iOS开发-iOS 开源代码库-iOS代码实例搜索-iOS特效示例-iOS代码例子下载-Code4App.com

ZYBannerView - 显示内容高度可定制的轮播图控件

[复制链接]
来自: 漫长_zzyP 分类: iOS精品源码 上传时间: 2016-8-31 14:38:38
Tag:

项目介绍:

ZYBannerView

简单易用, 显示内容定制性强的可循环轮播控件. 可以实现类似淘宝商品详情中侧拉进入详情页的功能. Keywords: banner, bannerView, cycle
DEMO 直接下载:




【ZYBannerView】基于UICollectionView实现简单易用的轮播控件.
Features
  • 显示的内容可高度自定义
  • 可配置循环滚动效果
  • 可配置是否自动滚动, 以及自动滚动时间间隔
  • 显示\隐藏Footer
  • 自定义PageControl属性
  • 支持在Storyboard\xib中创建并配置其属性
  • 支持Autolayout


Usage
Basic Usage
只需简单的2步即可快速集成此控件
1.创建Banner并设置数据源
[Objective-C] 查看源文件 复制代码
self.banner = [[ZYBannerView alloc] initWithFrame:CGRectMake(0, 0, 200, 100)];
self.banner.dataSource = self;
[self.view addSubview:self.banner];


2.实现数据源方法
[Objective-C] 查看源文件 复制代码
// 返回Banner需要显示Item(View)的个数
- (NSInteger)numberOfItemsInBanner:(ZYBannerView *)banner
{
    return 3;
}

// 返回Banner在不同的index所要显示的View
- (UIView *)banner:(ZYBannerView *)banner viewForItemAtIndex:(NSInteger)index
{
    UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"xxx"]];
    return imageView;
}




Advanced Usage
各种属性与方法的介绍

Property
  • 是否需要循环滚动, 默认为NO
@property (nonatomic, assign) IBInspectable BOOL shouldLoop;

  • 是否显示Footer, 默认为NO (此属性为YES时, shouldLoop属性会被置为NO)
@property (nonatomic, assign) IBInspectable BOOL showFooter;

  • 是否自动滑动, 默认为NO
@property (nonatomic, assign) IBInspectable BOOL autoScroll;

  • 自动滑动间隔时间(s), 默认为 3.0
@property (nonatomic, assign) IBInspectable NSTimeInterval scrollInterval;

  • Banner上显示的PageControl, 可自由配置其属性, 例如pageIndicatorTintColor, currentPageIndicatorTintColor
@property (nonatomic, strong, readonly) UIPageControl *pageControl;

  • 根据需要设置PageControl的frame, 若不设置或者设置为CGRectZero, 则使用默认位置
@property (nonatomic, assign, readwrite)  CGRect pageControlFrame;

  • 数据源与代理
@property (nonatomic, weak) IBOutlet id<ZYBannerViewDataSource> dataSource;@property (nonatomic, weak) IBOutlet id<ZYBannerViewDelegate> delegate;

NOTE : shouldLoop, showFooter, autoScroll, scrollInterval, dataSource, delegate 均可支持在Storyboard\xib中直接设置


Method
  • 刷新Banner的数据
- (void)reloadData;

  • 开始/停止用于自动滚动的定时器. 比如可以在viewWillAppear:和viewWillDisappear:中分别调用这两个方法, 使得Banner没有显示的时候定时器不会一直占用着资源.

- (void)startTimer;
- (void)stopTimer;


DataSource
  • 返回Banner需要显示Item(View)的个数 【required】

- (NSInteger)numberOfItemsInBanner: (ZYBannerView *)banner;

  • 返回Banner在不同的index所要显示的View. 这个View可以是简单的一个UIImageView, 也可以是自定义的一个复杂的View. View的大小自动布局为Banner的大小, 无需对此View设置frame 【required】

- (UIView *)banner: (ZYBannerView *)banner viewForItemAtIndex: (NSInteger)index;


  • 返回Footer在不同状态下(ZYBannerFooterStateIdle正常状态 \ ZYBannerFooterStateTrigger触发状态)显示的文字【optional】

- (NSString *)banner: (ZYBannerView *)banner titleForFooterWithState: (ZYBannerFooterState)footerState;

Delegate
  • 当用户点击了第index个Item时, 此代理方法将被调用 【optional】

- (void)banner: (ZYBannerView *)banner didSelectItemAtIndex: (NSInteger)index;

  • 当用户拖动Footer并达到触发点时, 此代理方法将被调用【optional】

- (void)bannerFooterDidTrigger: (ZYBannerView *)banner;

Requirements
  • iOS 7.0+
  • Xcode 5.0+


Installation
1.使用CocoaPods:

pod 'ZYBannerView'

2.手动添加:

  • 将ZYBannerView文件夹中拖拽到项目中
  • 导入头文件:#import "ZYBannerView.h"

相关源码推荐:

我来说两句
*滑动验证:
所有评论(288)
挖大坑的 2016-8-31 14:54:32
很给力,Code4App有你更精彩!
回复
半吱湮 2016-8-31 15:18:06
正需要啊,感谢楼主无私分享!
回复
Cristina123 2016-8-31 16:17:24
我只是路过打酱油的。
回复
1467306558 2016-8-31 16:30:34
淡定,淡定,淡定……
回复
code4app热心网友 2016-8-31 16:35:29
虽不明,但觉厉!
回复
code4app热心网友 2016-8-31 16:35:36
楼主用心了,内容非常精彩。
回复
code4app热心网友 2016-8-31 16:36:05
精华内容,楼主V5!
回复
code4app热心网友 2016-8-31 16:36:13
精华内容,楼主V5!
回复
code4app热心网友 2016-8-31 16:36:44
楼主威武啊,Code4App有你更给力!
回复
提取码:  下载次数:349 状态:已购或VIP 售价:0(原价:10)金钱 下载权限:初级码农 
7103 0 349
联系我们
首页/微信公众账号投稿

帖子代码编辑/版权问题

QQ:435399051,742864542

如何获得代码达人称号?

代码贡献英雄榜
用户名 下载数
通过邮件订阅最新 Code4App 信息
上一条 /4 下一条
联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| 广东互联网违法和不良信息举报中心|中国互联网举报中心|Github|申请友链|手机版|Code4App ( 粤ICP备15117877号-1 )

快速回复 返回顶部 返回列表