Advertisement
itruf

Untitled

Aug 6th, 2018
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 1.53 KB | None | 0 0
  1. func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
  2.         if scrollView != self.collectionView { // Если не наш collection view, то не выполняем дальше
  3.             return
  4.         }
  5.        
  6.         scrollToPage(scrollView, withVelocity: CGPoint(x:0, y:0))
  7.     }
  8.    
  9.     func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
  10.         if scrollView != self.collectionView { // Если не наш collection view, то не выполняем дальше
  11.             return
  12.         }
  13.        
  14.         scrollToPage(scrollView, withVelocity: velocity)
  15.     }
  16.    
  17.     func scrollToPage(_ scrollView: UIScrollView, withVelocity velocity: CGPoint) {
  18.         if scrollView != self.collectionView {
  19.             return
  20.         }
  21.        
  22.         let cellWidth: CGFloat = 217
  23.         let cellPadding: CGFloat = 26
  24.        
  25.         var page: Int = Int((scrollView.contentOffset.x - cellWidth / 2) / (cellWidth + cellPadding) + 1)
  26.         if velocity.x > 0 {
  27.             page += 1
  28.         }
  29.         if velocity.x < 0 {
  30.             page -= 1
  31.         }
  32.         page = max(page, 0)
  33.        
  34.         // Сменилась страничка, можно передать ее номер делегату или контроллеру
  35.        
  36.         let newOffset: CGFloat = CGFloat(page) * (cellWidth + cellPadding)
  37.        
  38.         scrollView.setContentOffset(CGPoint(x:newOffset, y:0), animated: true)
  39.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement