- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.view.backgroundColor = [UIColor cyanColor];
//设置代理
self.iCarouselView.delegate = self;
self.iCarouselView.dataSource = self;
//切换item图片的类型这个是自定义类型
self.iCarouselView.type = iCarouselTypeCustom;
//第几张图片显示在当前位置
[self.iCarouselView scrollToItemAtIndex:4 animated:NO];
self.iCarouselView.clipsToBounds = YES;
//一开始中心图偏移量
//self.iCarouselView.contentOffset = CGSizeMake(0, 0);
//类似contentoffset
//self.iCarouselView.viewpointOffset = CGSizeMake(0, 0);
//控制滑动切换图片减速的快慢 默认0.95
//self.iCarouselView.decelerationRate = 0.95;
}
#pragma mark--delegate--datasource--
//切换的图片张数--必须实现
-(NSUInteger)numberOfItemsInCarousel:(iCarousel *)carousel {
return 7;
}
//返回要切换的图片--必须实现
-(UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index {
UIView *view = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"%ld.png",index+1]]];
//展示切换图片的大小
view.frame = CGRectMake(0, 0, 200, 200);
[view.layer setCornerRadius:view.frame.size.height/2];
view.layer.masksToBounds = YES;
return view;
}
//当前屏幕显示几张item图片
-(NSUInteger) numberOfVisibleItemsInCarousel:(iCarousel *)carousel {
return 5;
//这个当前界面显示图片数会影响contentfttset == 当前显示数 - 1
//例如本test 偏移量为 4 3 2 1 0 -1 -2 -3 -4
}
//item图片之间的间隔宽
-(CGFloat)carouselItemWidth:(iCarousel *)carousel {
return 200;
}
//返回自定义滚动类型
- (CATransform3D)carousel:(iCarousel *)_carousel transformForItemView:(UIView *)view withOffset:(CGFloat)offset
{
CATransform3D transform = CATransform3DIdentity;
// NSLog(@">>>>>>>>>>>>>>%f",offset);
static CGFloat max_sacle = 1.0f;
static CGFloat min_scale = 0.6f;
if (offset <= 1 && offset >= -1) {
float tempScale = offset < 0 ? 1+offset : 1-offset;
float slope = (max_sacle - min_scale) / 1;
CGFloat scale = min_scale + slope * tempScale;
transform = CATransform3DScale(transform, scale, scale, 1);
}else{
transform = CATransform3DScale(transform, min_scale, min_scale,1);
}
return CATransform3DTranslate(transform, offset * _carousel.itemWidth * 1.5, 0.0, 0.0);
}
- (void)carouselDidScroll:(iCarousel *)carousel{
NSLog(@"滚动中");
//当前图片alpha为1 其他的图片为0.4
for (UIView *vvv in carousel.visibleItemViews) {
vvv.alpha = 0.4;
}
UIView *vv = [carousel currentItemView];
vv.alpha = 1;
}
- (void)carouselDidEndScrollingAnimation:(iCarousel *)carousel{
NSLog(@"结束滚动");
}
- (void)carousel:(iCarousel *)carousel didSelectItemAtIndex:(NSInteger)index{
NSLog(@"点击item执行方法");
}