Skip to content

Nidcoco/LVCycleScrollView

Repository files navigation

LVCycleScrollView

License MIT  Carthage compatible  CocoaPods  CocoaPods  Support  Build Status

介绍

这是一个图片及文字自动轮播的控件,由于本人是个的小菜鸟,所以这个第三方库都是看别人的,主体代码是参考SDCycleScrollView,图片滚轮样式是参考这篇博客UICollectionView自定义布局,自定义的UICollectionViewLayout是跟HJCarouselDemo学习的,本人现阶段能力有限,代码比较混乱,累赘,看不惯的兄弟可以使用上面的SDCycleScrollView

新版本定时器使用了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
添加30像素的间隙 样式2
样式3
样式4
原始添加间隔,调整view的高度 样式5
样式6
样式7

版本1.0.2

这个版本更改比较大, 分页控件的部分属性名我修改了, 并且去掉了多余的文字滚动, 如果之前使用了0.0.9以下的版本更新1.0.0版本以上应该会报错

最后

第一次搞第三方库,可能还存在有bug,代码也有点烂,有问题发我邮箱2387356991@qq.com,觉得还可以的兄弟麻烦给小弟一个✨✨,感激不尽

About

图片及文字自动滚动的控件

Resources

License

Stars

Watchers

Forks

Packages

No packages published