icarousel旋转木马的详解--当前itemscale和alpha

来源:互联网 发布:网络视频下载器有那些 编辑:程序博客网 时间:2024/06/05 02:51

- (void)viewDidLoad

{

    [super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

    

    self.view.backgroundColor = [UIColorcyanColor];

    //设置代理

    self.iCarouselView.delegate =self;

    self.iCarouselView.dataSource =self;

    //切换item图片的类型这个是自定义类型

    self.iCarouselView.type =iCarouselTypeCustom;

    //第几张图片显示在当前位置

    [self.iCarouselViewscrollToItemAtIndex:4animated: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 = [[UIImageViewalloc] initWithImage:[UIImageimageNamed:[NSStringstringWithFormat:@"%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(@"滚动中");

    //当前图片alpha1其他的图片为0.4

    for (UIView *vvvin carousel.visibleItemViews) {

        vvv.alpha = 0.4;

    }

    UIView *vv = [carouselcurrentItemView];

    vv.alpha = 1;

}

- (void)carouselDidEndScrollingAnimation:(iCarousel *)carousel{

 

    

    NSLog(@"结束滚动");

}

- (void)carousel:(iCarousel *)carousel didSelectItemAtIndex:(NSInteger)index{

    NSLog(@"点击item执行方法");

}


1 0
原创粉丝点击