codingzero / xrcarouselview Goto Github PK
View Code? Open in Web Editor NEW史上最简单的图片轮播,可左右滚动与淡入淡出,秒集成,支持gif图片,自带缓存,不依赖任何第三方库
License: MIT License
史上最简单的图片轮播,可左右滚动与淡入淡出,秒集成,支持gif图片,自带缓存,不依赖任何第三方库
License: MIT License
为什么要设置scrollView的contentSize的宽度为5倍的width,3倍的有什么不好的地方吗?
修改如下
if ([[[UIDevice currentDevice] systemVersion ]floatValue] >= 10.0 ) {
self.timer = [NSTimer timerWithTimeInterval:_time < 1? DEFAULTTIME: _time repeats:YES block:^(NSTimer * _Nonnull timer) {
[weakSelf nextPage];
}];
}else {
self.timer = [NSTimer timerWithTimeInterval:_time < 1? DEFAULTTIME: _time target:self selector:@selector(nextPage) userInfo:nil repeats:YES];
}
占位图未提供修改接口.
可以提供一个修改接口,然后在.m 里给个默认的设置.
如果设置了就使用修改的,
如果没有设置就使用默认的占位图.
对于使用 Pod 的用户来说,直接修改源文件?
你好,我使用你的代码做轮播图,在外部修改 XRCarouselView 的 frame 后,手动从右往左滑,pageControl 位置计算错乱,从左往右是没问题的。
感觉应该是 changeCurrentPageWithOffset 方法的问题,但目前还没看懂你是怎样计算的。
感谢作者提供这么优秀的开源工程: )
bug:
两张滚动图片,当滚动到第一张时候,切换到另一个界面(比如另一个tabbar),过4s钟再切回来,发现pageControl已经指示第二张图了,但是图片显示的还是第一张图,没有切到第二张图。经过我调试,发现把changeToNext方法内容用dispatch_async(dispatch_get_main_queue,...)包起来可以解决这个问题: )
在UICollectionViewCell
或者UITableViewCell
中,滑动时,轮播将会暂定。直到滑动页面结束,才能继续轮播。
[__NSArrayM insertObject:atIndex:]: object cannot be nil'
图片轮播中途点到别的tab页面,返回来时还是卡在两张图片中间,时间到了才轮播
我不想要占位图片,当我把占位图片的name设置为空的时候,程序crash
您好,在 - (void)downloadImages:(int)index 中,将NSBlockOperation添加到NSOperationQueue中默认是并发执行的,因此会发生数组越界的问题,这里可以设置NSOperationQueue的最大并发数为1 或者添加依赖使NSBlockOperation串行执行
1、如果我的手势一直往左滑动,是不是应该图片0到图片2呢?
2、pageControl是不是加上事件会更完善些!
你好。
我先创建一个XRCarouselView(传的空图片数组),然后通过网络请求图片地址,再将图片地址数组赋值给imagesArray,发现这样赋值无法正常显示,上一个版本都可以的。
[_currImageView setContentMode:UIViewContentModeScaleAspectFill];
[_otherImageView setContentMode:UIViewContentModeScaleAspectFill];
_currImageView.clipsToBounds = YES;
_otherImageView.clipsToBounds = YES;
展位图没有展示,展示白背景色
如果我在请求数据还没有回调时,即我的imageArry还无法赋值的时候,那么placeholderImage的设置是没有效果的。
😔
我不用cocopods,使用你之前的版本就不崩
不管左边还是右边,都失败了,理论上是一个滑动到下一个图片的,然而却返回上一张
我把你封装的滚动视图,放到tableViewcell里面后,不能实现拖动了,但是自己还是可以滚动
你好:
在开发中,其实可能会出现这种问题,有url,但是个错误的url。
这个时候,本地缓存没有。下载图片下载不到的时候,会crash。
* UIImage image = [UIImage imageWithData:data];
[self.imageDic setObject:image forKey:key];
代码是这两句,因为image是个空的,所以存储的时候,就会cras掉。
不知道你们有没有过这种问题,我是碰到过。如果说的不对,还请见谅。
使用者若直接把.h輸入進來,沒有輸入到placeholder的照片,就會發生錯誤
环境:xcode8.1, iPhone7 iOS10.1 模拟器
为什么scrolOffsetY这样设置容易崩溃,而填写具体的数字就不崩溃呢?为什么设置隐藏title选项不起作用?
iPad mini2
打开之后内存占用到400MB左右,一会就崩溃了。
共两页,每页一张gif,估计是 gif 图导致了内存涨得厉害。
可以支持不轮播吗 加个属性?
pod 报错
Unable to find a specification for
XRCarouselView (~> 2.3.1)
ps:非常感谢您的文章
setFrame方法中添加观察者,会造成崩溃.
因为setFrame多次调用,观察者多次添加,dealloc只移除一个观察者.
xrcarouseView加在scrollView或者继承scrollView的控件上,当有描述文字时,pageControl的位置会变化,位于描述文字的上方了
没有代理 没有block 所有只能导入 然后自己改了
使用时发现3个bug
1.自定义了切换时间后,还是会出现变成默认2s的情况.
2.从网络加载完图片后,不能及时替代占位图显示出来.
3.首次加载数据,直接向左划会crash.
已经手动修改代码解决,也不排除是使用方法不对导致的问题.
有时间你可以看一下.
iOS8下 tableView上具有多个XRCarouseView,自动轮播,多次来回滑动,框架会有概率出现僵尸崩溃,原因是控件释放后,内部scrollView还在回调didScroll方法。[XRCarouseView scrollViewDidScroll:] message sent to dellocated instance 0xxxxxxx 建议在处理一下scrollView代理:
您好,在 - (void)downloadImages:(int)index 中,将NSBlockOperation添加到NSOperationQueue中默认是并发执行的,因此会发生数组越界的问题,这里可以设置NSOperationQueue的最大并发数为1 或者添加依赖使NSBlockOperation串行执行
从其他app 返回的时候,会出现广告栏空白
?
轮播图全屏的时候,push到下个界面,会出现imageview重新计算大小导致大小不是全屏
lazy var carouselV: XRCarouselView = {
let view = XRCarouselView()
view.imageArray = [
UIImage.Name("login_back1")!,
UIImage.Name("login_back2")!,
UIImage.Name("login_back3")!
]
view.pagePosition = .PositionHide
view.time = 5
view.contentMode = .scaleAspectFill
view.isUserInteractionEnabled = false
return view
}()
view.addSubview(carouselV)
carouselV.snp.makeConstraints { make in
make.edges.equalToSuperview()
}
这样,但是在我push到下个界面的时候,会在要进入下个界面的时候,imageview的大小会从状态栏下面开始,而不是全屏,导致状态栏显示出来,我看层级,只有imageview会这样,下面的scrollview并没有
<UIImageView: 0x10c9264d0; frame = (828 0; 414 896); clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x28222e100>>
Printing description of $54:
<UIScrollView: 0x111044e00; frame = (0 0; 414 896); clipsToBounds = YES; gestureRecognizers = <NSArray: 0x282ce1fb0>; layer = <CALayer: 0x28222dd60>; contentOffset: {828, -44}; contentSize: {2070, 0}; adjustedContentInset: {44, 0, 34, 0}>
Printing description of $55:
<XRCarouselView: 0x10c924e10; frame = (0 0; 414 896); userInteractionEnabled = NO; layer = <CALayer: 0x28222e4e0>>
这是我断点的时候打印出的属性,我看到是UIScrollView 的contentOffset: {828, 0} 变化了contentOffset: {828, -44}
离线展示轮播图时其中一个轮播图的Title会固定在下方,其它Title会覆盖上去,而且有时离线展示的时候会不显示轮播图,就是一片空白。
1、部分属性设置无效:因为设置属性时,view可能还没创建
2、不提前设置placeholderImage,会闪退
这里是修复的参考方案 #45
hi,看了你的自动轮播感觉写的很不错,但是我将我自己写的库切换成你的库后,发现广告崩溃。
错误日志:-[UIView setImage:]: unrecognized selector sent to instance 0x170395af0
崩溃在这句代码: _pageControl.currentPage = (_currIndex + 1) % self.images.count;
我在首页添加了自动轮播,在不停的push和pop的操作后,有几率会崩溃。
已在生命周期做Stop Timer 和Start Timer处理,望回复,并解决。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.