swift中线性型iCarousel的自转无限效应
我需要在iCarousel中的.linear类型中实现无限自动滚动效果,并且我已经在.columinal类型中实现了自动滚动,但在.linear类型中无法实现此效果 这是我的实现自动滚动的代码swift中线性型iCarousel的自转无限效应,swift,xcode,icarousel,Swift,Xcode,Icarousel,我需要在iCarousel中的.linear类型中实现无限自动滚动效果,并且我已经在.columinal类型中实现了自动滚动,但在.linear类型中无法实现此效果 这是我的实现自动滚动的代码 carousel.type = .linear carousel.autoscroll=-0.4 carousel.reloadData() 是的,在线性的情况下,carousel.type=.linear不起作用,因此您必须为滚动创建一个自己的计时器,如下所示: self.timer = NSTim
carousel.type = .linear
carousel.autoscroll=-0.4
carousel.reloadData()
是的,在线性的情况下,carousel.type=.linear不起作用,因此您必须为滚动创建一个自己的计时器,如下所示:
self.timer = NSTimer.scheduledTimerWithTimeInterval(6, target: self, selector: #selector(self.handleTimer), userInfo: nil, repeats: true)
func handleTimer(){
if itemsScroll.count != 0{
if itemsScroll.count-1 == index{
index = 0
}
else {
index += 1
}
}
let x = CGFloat(index)
if index == 0 {
carousel.scrollToOffset(x, duration: 0)
}
else {
carousel.scrollToOffset(x, duration: 2)
}
}
索引用于获取转盘数据源的当前数据。是的,在线性的情况下,这不起作用carousel.type=.linear,因此您必须为滚动设置自己的计时器,如下所示:
self.timer = NSTimer.scheduledTimerWithTimeInterval(6, target: self, selector: #selector(self.handleTimer), userInfo: nil, repeats: true)
func handleTimer(){
if itemsScroll.count != 0{
if itemsScroll.count-1 == index{
index = 0
}
else {
index += 1
}
}
let x = CGFloat(index)
if index == 0 {
carousel.scrollToOffset(x, duration: 0)
}
else {
carousel.scrollToOffset(x, duration: 2)
}
}
索引用于获取旋转木马数据源的当前数据。感谢@salman的回答借助于salman的回答,我得到了一个无限解的解决方案,当旋转木马类型为线性时,不会出现抖动问题
请按照下面给出的步骤操作
一,。定义句柄滚动的计时器
_=Timer.scheduledTimertimeInterval:4,target:self,selector:selectorself.handleTimer,userInfo:nil,repeats:true
二,。编写转盘的委托方法和处理包裹类型。借助包裹,我们解决了jerk问题
三,。方法来处理滚动
感谢@salman的回答,在salman的回答的帮助下,我得到了一个无限解的解,当旋转木马类型是线性的时,不会出现问题
请按照下面给出的步骤操作
一,。定义句柄滚动的计时器
_=Timer.scheduledTimertimeInterval:4,target:self,selector:selectorself.handleTimer,userInfo:nil,repeats:true
二,。编写转盘的委托方法和处理包裹类型。借助包裹,我们解决了jerk问题
三,。方法来处理滚动
感谢@salman的回答,但在这篇文章中,最后一个项目到达第一个项目时会发生冲动。感谢@salman的回答,但在这篇文章中,最后一个项目到达第一个项目时会发生冲动。
func handleTimer() {
var newIndex = self.carousel.currentItemIndex + 1
if newIndex > self.carousel.numberOfItems {
newIndex = 0
}
carousel.scrollToItem(at: newIndex, duration: 0.5)
}