介绍
这是一个图片及文字自动轮播的控件,由于本人是个的小菜鸟,所以这个第三方库都是看别人的,主体代码是参考SDCycleScrollView,图片滚轮样式是参考这篇博客UICollectionView自定义布局,自定义的UICollectionViewLayout是跟HJCarouselDemo学习的
新版本定时器使用了GCD定时器, 精度更高, 且GCD 和 runloop 没有关系, 可以少创建一个NSProxy类来防止NSTimer造成的循环引用造成的内存泄漏, 推荐更新
更新记录
2021.12.08 版本 1.0.2 -- 把NSTimer换成了GCD定时器, 简易初始化, 去除多余的文字滚动样式, 修复bug
2020.08.01 版本 0.0.9 -- 控件初始版本
安装
使用CocoaPods安装
pod 'LVCycleScrollView'
手动安装
直接拉取代码,把LVCycleScrollView
文件夹拉到项目工程即可
用法
将头文件导入到您希望使用该控件的任何类中
#import "LVCycleScrollView.h"
简单初始化使用
// 简单初始化, 推荐
LVCycleScrollView *view1 = [[LVCycleScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 200)];
/*
也可以
LVCycleScrollView *view = [[LVCycleScrollView alloc] init];
view.frame = CGRectMake(0, 0, self.view.frame.size.width, 200);
*/
view.imagesArray = @[@"1",@"2",@"3",@"4"];
[sView addSubview:view];
// 约束
LVCycleScrollView *view = [[LVCycleScrollView alloc] init];
view.imagesArray = @[@"1",@"2",@"3",@"4"];
[sView addSubview:view];
[view mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.left.right.offset(0);
make.height.offset(200);
}];
// 也可以用xib加载
这里图片数组可以传网络路径,本地图片名字,NSURL类型,UIImage类型
图片+底部文字
// 带文字的无限滚动, 文字比图片少也支持
LVCycleScrollView *view = [[LVCycleScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 200)];
view.imagesArray = @[@"1",@"2",@"3",@"4"];
view.titlesArray = @[@"多喜欢阿离一点,可以吗?",@"吟诵十四行诗,作为仲夏之梦的开场",@"见过我家那只可爱的宠物吗?它的名字叫大白"];
view.pageControlAliment = LVPageControlRight;
[sView addSubview:view];
文字轮播
// 只设置文字数组不设置图片数组就会变成文字的轮播
LVCycleScrollView *view = [[LVCycleScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 40)];
view.titlesArray = @[@"多喜欢阿离一点,可以吗?",@"吟诵十四行诗,作为仲夏之梦的开场",@"见过我家那只可爱的宠物吗?它的名字叫大白",@"想要欣赏妾身的舞姿吗?"];
view.textBackgroundColor = [UIColor colorWithRed:64/255.f green:151/255.f blue:255/255.f alpha:0.5];
[self.view addSubview:view];
更多用法可以下载Demo查看
图片滚动样式
- LVImageScrollNone:普通,无滚动特效
- LVImageScrollCardOne:样式1,随滑动缩放的特效,控件中间的cell宽高度不变,两侧的cell缩放,默认两个cell间缩放比80%,以cell的中心进行缩放,可通过属性zoomScale改变缩放比
- LVImageScrollCardTwo:样式2,随滑动缩放的特效,控件中间的cell宽高度不变,中间两侧的cell缩放,默认两个cell间缩放比80%,水平滚动缩小高度,竖直滚动缩小宽度,不过每个cell的间隔相同,默认为0,可通过space属性修改间隔,zoomScale改变缩放比
- LVImageScrollCardThird:样式3,随滑动缩放的特效,控件中间的cell宽高度不变,两侧的cell的宽高都一样,水平滚动缩小高度,竖直滚动缩小宽度,可通过space属性修改间隔,zoomScale改变缩放比
- LVImageScrollCardFour:样式4,随滑动缩放的特效,控件中间的cell宽高度不变,两侧的cell的宽高都一样,水平滚动缩小高度,竖直滚动缩小宽度,和样式3不同的是底部或左边对齐控件中间的cell,即控件中间两侧cell的center和控件中间的cell的center不一样,美团选电影票的页面和这个类似,可通过space属性修改间隔,zoomScale改变缩放比
- LVImageScrollCardFive:样式5,随滑动旋转的特效,以cell为中心旋转,控件中间的cell角度不变,默认两个cell之间旋转度数为M_PI_4,也就是45°,可通过space属性修改间隔,rotationAngle改变旋转角度,rotationAngle正负值会影响角度
- LVImageScrollCardSix:样式6,三维特效,随滑动图片绕x轴旋转特效,默认旋转的度数M_PI_4,也就是45°,可通过space属性修改间隔,rotationAngle改变旋转角度,rotationAngle正负值会影响角度
- LVImageScrollCardSeven:样式7,轮盘旋转,随滑动绕控件外外的某点旋转,这个点就是瞄点,位置为anchorPoint,cell的center到这个点的连线是半径,默认500,可通过radius属性修改,半径的夹角是angle,默认M_PI/12,也就是45°
图片滚动样式效果展示
水平效果 | 竖直效果 | 样式 |
---|---|---|
无样式 | ||
|
样式1 | |
|
样式2 | |
样式3 | ||
样式4 | ||
|
样式5 | |
样式6 | ||
样式7 |
版本1.0.2
这个版本更改比较大, 分页控件的部分属性名我修改了, 并且去掉了多余的文字滚动, 如果之前使用了0.0.9以下的版本更新1.0.0版本以上应该会报错
最后
Demo
第一次搞第三方库,可能还存在有bug,有问题发我邮箱2387356991@qq.com,觉得还可以的兄弟麻烦给小弟一个✨✨,感激不尽