之前的工作中碰到一个轮播图的需求,需要在图片滚动过程中实现缩放效果,查找资料后没有找到合适的第三方库,所以基于人气比较高的SDCycleScrollView进行修改,实现所需的缩放效果,同时也保留原本的普通轮播图模式,两种模式可以通过一个BOOL值进行切换,先放上修改后的效果图:
有碰到这种需求的小伙伴可以参考一下,GitHub地址:https://github.com/runThor/HTSDCycleScrollView
使用方式基本与SDCycleScrollView一致,新增了一个zoomType属性用于切换普通轮播图模式与缩放效果的轮播图模式,默认为普通轮播图模式。
下面放上基本使用方法,注意SDCycleScrollView是依赖SDWebImage的,两个库都需要导入项目中:
// ViewController.m #import "SDCycleScrollView.h" - (void)viewDidLoad { [super viewDidLoad]; // 轮播图 SDCycleScrollView *adCycleScrollView = [SDCycleScrollView cycleScrollViewWithFrame:CGRectMake(0, 100, Screen_Width, 200) delegate:self placeholderImage:[UIImage new]]; adCycleScrollView.zoomType = YES; // 是否使用缩放效果,默认为NO,即默认为普通轮播图模式 adCycleScrollView.pageControlStyle = SDCycleScrollViewPageContolStyleAnimated; adCycleScrollView.scrollDirection = UICollectionViewScrollDirectionHorizontal; adCycleScrollView.currentPageDotColor = [UIColor whiteColor]; adCycleScrollView.pageDotColor = [UIColor colorWithWhite:1 alpha:0.5]; adCycleScrollView.pageControlDotSize = CGSizeMake(20, 6); // pageControl小圆点的大小 // adCycleScrollView.imageURLStringsGroup = @[]; // 网络图片 adCycleScrollView.localizationImageNamesGroup = @[@"img1", @"img2", @"img3", @"img4"]; // 本地图片 [self.view addSubview:adCycleScrollView]; // 轮播公告 SDCycleScrollView *noticeView = [SDCycleScrollView cycleScrollViewWithFrame:CGRectMake(0, 350, Screen_Width, 30) delegate:self placeholderImage:nil]; noticeView.backgroundColor = [UIColor lightGrayColor]; noticeView.onlyDisplayText = YES; noticeView.titlesGroup = @[@"公告1", @"公告2", @"公告3"]; noticeView.scrollDirection = UICollectionViewScrollDirectionVertical; [self.view addSubview:noticeView]; }