只需简单的2步即可快速集成此控件
self.banner = [[ZYBannerView alloc] initWithFrame:CGRectMake(0, 0, 200, 100)];
self.banner.dataSource = self;
[self.view addSubview:self.banner];
// 返回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;
}
各种属性与方法的介绍
是否需要循环滚动, 默认为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中直接设置
刷新Banner的数据
(void)reloadData;
开始/停止用于自动滚动的定时器. 比如可以在viewWillAppear:
和viewWillDisappear:
中分别调用这两个方法, 使得Banner没有显示的时候定时器不会一直占用着资源.
(void)startTimer;
(void)stopTimer;
返回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;
当用户点击了第index
个Item时, 此代理方法将被调用 【optional】
(void)banner:(ZYBannerView *)banner didSelectItemAtIndex:(NSInteger)index;
当用户拖动Footer并达到触发点时, 此代理方法将被调用【optional】
(void)bannerFooterDidTrigger:(ZYBannerView *)banner;
1.使用CocoaPods:
pod 'ZYBannerView'
2.手动添加:
#import "ZYBannerView.h"
ZYBannerView is released under the MIT license. See LICENSE for details.
Looking to incorporate ZYBannerView into your project in Xamarin? Check out ZYBannerView_Xamarin (thanks to jingliancui).