.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