iCarouselの直線型では無限の自動スクロール効果が必要ですが、シリンダータイプでは自動スクロールしていますが、直線型では実現できません。ここでiCarouselのiCarouselの無限オートエフェクトの無限の効果
は.cylinderタイプ
carousel.type = .linear
carousel.autoscroll = -0.4で自動スクロールを実現するの私のコードです。
carousel.reloadData()
iCarouselの直線型では無限の自動スクロール効果が必要ですが、シリンダータイプでは自動スクロールしていますが、直線型では実現できません。ここでiCarouselのiCarouselの無限オートエフェクトの無限の効果
は.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