.linear型iCarousel的自动滚动无限的效果,我需要在iCarousel在.linear型无限自动滚动效果,我已经实现自动滚动在.cylinder类型,但我不能达到.linear型这种效果。在迅速
这是我在.cylinder类型实现自动滚动的代码
carousel.type = .linear
carousel.autoscroll = -0.4;
carousel.reloadData()
.linear型iCarousel的自动滚动无限的效果,我需要在iCarousel在.linear型无限自动滚动效果,我已经实现自动滚动在.cylinder类型,但我不能达到.linear型这种效果。在迅速
这是我在.cylinder类型实现自动滚动的代码
carousel.type = .linear
carousel.autoscroll = -0.4;
carousel.reloadData()
感谢@salman与萨尔曼的答案的帮助下回答我得到了无限的解决方案的解决方案,而不猛拉问题,当转盘类型为线性
请按照以下步骤操作。
1.定义手柄定时滚动
_ = Timer.scheduledTimer(timeInterval: 4, target: self, selector: #selector(self.handleTimer), userInfo: nil, repeats: true)
2.写轮播的委托方法和处理包裹型保鲜膜的帮助下,我们解决问题的混蛋。
func carousel(_ carousel: iCarousel, valueFor option: iCarouselOption, withDefault value: CGFloat) -> CGFloat {
switch option {
case .wrap:
return 1
default:
return value
}
}
3.方法来处理滚动
func handleTimer() {
var newIndex = self.carousel.currentItemIndex + 1
if newIndex > self.carousel.numberOfItems {
newIndex = 0
}
carousel.scrollToItem(at: newIndex, duration: 0.5)
}
是的,这不起作用在linear
的情况下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)
}
}
的index
用于获取的当前数据轮播数据源。
感谢@salman的答案,但在这最后一个项目挺举之后,当进入第一个项目发生。 – SmarterSusheel