通过在scrollview的回调函数中设置不同速度,匹配不同的滑动距离,然后滑动一张卡片解决卡片滑动卡顿
funcscrollViewWillEndDragging(_scrollView:UIScrollView, withVelocity velocity:CGPoint, targetContentOffset:UnsafeMutablePointer) {
// Destination x
letx = targetContentOffset.pointee.x
// Page width equals to cell width
letpageWidth =UISCREEN_WIDTH-50
letmovedX = x - pageWidth *CGFloat(selectedIndex)
ifabs(velocity.x) >=0.2&&abs(velocity.x) <=0.4{
ifmovedX < -pageWidth *0.2{
// Move left
selectedIndex-=1
}elseifmovedX > pageWidth *0.2{
// Move right
selectedIndex+=1
}
}elseifabs(velocity.x) >0.4{
ifmovedX < -pageWidth *0.1{
// Move left
selectedIndex-=1
}elseifmovedX > pageWidth *0.1{
// Move right
selectedIndex+=1
}
}elseifabs(velocity.x) <0.2{
ifmovedX < -pageWidth *0.4{
// Move left
selectedIndex-=1
}elseifmovedX > pageWidth *0.4{
// Move right
selectedIndex+=1
}
}
targetContentOffset.pointee.x= pageWidth *CGFloat(selectedIndex)
cellPageControl.currentPage = selectedIndex
}
网友评论