本轮播器不采用什么 collectionView,也不使用XIB,更不依赖第三方下载框架(如AFN等),使用也非常简单,先上效果图
其中指示器pagecontrol效果自己可以设置,效果一
效果二
如何使用
步骤如下
1、
#import "TGCarouselImageView.h"
2、
NSArray *imageArray = @[@"http://pgdt.gtimg.cn/gdt/0/DAALCBEAUAALQABgBZG91dAJ9Xbcmb.jpg/0?ck=b6702b77e6a8e7034439a460c24e8a1d",
@"http://pgdt.gtimg.cn/gdt/0/15e08f34b958e105e658cb7be92ae497.JPG/0?ck=b2b25b3a666748f9515af9037445a26d"];
NSMutableArray *describeArray = [[NSMutableArray alloc] init];
for (NSInteger i = 0; i < imageArray.count; i++) {
NSString *tempDesc = [NSString stringWithFormat:@"Image Description %zd", i];
[describeArray addObject:tempDesc];
}
TGCarouselImageView *carouselIV = [TGCarouselImageView tg_carouselImageViewWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 200) imageArrary:imageArray describeArray:nil placeholderImage:[UIImage imageNamed:@"adph2.jpg"] block:^(NSInteger index) {
//your code
}];
carouselIV.pageIndicatorTintColor = [[UIColor whiteColor] colorWithAlphaComponent:0.3];
carouselIV.currentPageIndicatorTintColor = [UIColor redColor];
self.tableView.tableHeaderView = carouselIV;
更多初始或实例化方式,共七种,选择自己喜欢的方式,都是一行代码实例化后就使用
+ (instancetype)tg_carouselImageViewWithFrame:(CGRect)frame imageArrary:(NSArray *)imageArrary;
+ (instancetype)tg_carouselImageViewWithFrame:(CGRect)frame imageArrary:(NSArray *)imageArrary describeArray:(NSArray *)describeArray;
+ (instancetype)tg_carouselImageViewWithFrame:(CGRect)frame imageArrary:(NSArray *)imageArrary describeArray:(NSArray *)describeArray placeholderImage:(UIImage *)placeholderImage;
+ (instancetype)tg_carouselImageViewWithFrame:(CGRect)frame imageArrary:(NSArray *)imageArrary describeArray:(NSArray *)describeArray placeholderImage:(UIImage *)placeholderImage delegate:(id<TGCarouselImageViewDelegate>)delegate;
+ (instancetype)tg_carouselImageViewWithFrame:(CGRect)frame imageArrary:(NSArray *)imageArrary describeArray:(NSArray *)describeArray placeholderImage:(UIImage *)placeholderImage block:(DidTapCarouselImageViewAtIndexBlock)block;
- (instancetype)initWithFrame:(CGRect)frame imageArrary:(NSArray *)imageArrary describeArray:(NSArray *)describeArray placeholderImage:(UIImage *)placeholderImage delegate:(id<TGCarouselImageViewDelegate>)delegate;
- (instancetype)initWithFrame:(CGRect)frame imageArrary:(NSArray *)imageArrary describeArray:(NSArray *)describeArray placeholderImage:(UIImage *)placeholderImage block:(DidTapCarouselImageViewAtIndexBlock)block;
一句话完成无限轮播指的就是类似下面的使用
TGCarouselImageView *carouselIV = [TGCarouselImageView tg_carouselImageViewWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 200) imageArrary:imageArray describeArray:nil placeholderImage:[UIImage imageNamed:@"adph3.jpg"] block:^(NSInteger index) {
//block
}];
除了block方式,也可以使用代理方式,随自己喜欢
参数说明
(CGRect)frame 轮播器的大小
imageArrary:(NSArray *)imageArrary 图片数组,如果加入的为字符串,表示网络图片,如果传入的是uiimage,表示实例化好的图片(如本地图片)
describeArray:(NSArray *)describeArray 表示对上面数组的文字说明
placeholderImage:(UIImage *)placeholderImage 占位图,如果网络问题不能下载网络图片,使用占位图
block:(DidTapCarouselImageViewAtIndexBlock)block 点击图片的回调,Block方式使用
delegate:(id<TGCarouselImageViewDelegate>)delegate 同上,,Block方式使用
完整的使用示例参见https://github.com/targetcloud/baisibudejie
如果你觉得赞,请star