Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
- // Page width used for estimating and calculating paging.
- let pageWidth = (self.frame.width) - interIntemMargin
- // Make an estimation of the current page position.
- let approximatePage = scrollView.contentOffset.x/pageWidth
- // Determine the current page based on velocity.
- let currentPage = (velocity.x < 0.0) ? floor(approximatePage) : ceil(approximatePage)
- // Create custom flickVelocity.
- let flickVelocity = velocity.x * 0.3
- // Check how many pages the user flicked, if <= 1 then flickedPages should return 0.
- let flickedPages = (abs(round(flickVelocity)) <= 1) ? 0 : round(flickVelocity)
- // Calculate newHorizontalOffset.
- let newHorizontalOffset = ((currentPage + flickedPages ) * pageWidth) - scrollView.contentInset.left
- targetContentOffset.pointee.x = newHorizontalOffset
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement