LVCycleScrollView 1.0.4

LVCycleScrollView 1.0.4

Levi维护。



  • 作者:
  • Levi

LVCycleScrollView

License MIT  Carthage compatible  CocoaPods  CocoaPods  Support  Build Status

介绍

这是一个图片及文字自动轮播的控件,由于我是个的小菜鸟,所以这个第三方库都是看别人的,主体代码是参考SDCycleScrollView,图片滚轮样式是参考这篇博客UICollectionView自定义布局,文字水平滚动是参考LMJHorizontalScrollText,自定义的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,代码也有些糟糕,有问题请发邮件到[email protected],觉得还可以的朋友请帮忙支持一下感激不尽