Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
- if scrollView != self.collectionView { // Если не наш collection view, то не выполняем дальше
- return
- }
- scrollToPage(scrollView, withVelocity: CGPoint(x:0, y:0))
- }
- func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
- if scrollView != self.collectionView { // Если не наш collection view, то не выполняем дальше
- return
- }
- scrollToPage(scrollView, withVelocity: velocity)
- }
- func scrollToPage(_ scrollView: UIScrollView, withVelocity velocity: CGPoint) {
- if scrollView != self.collectionView {
- return
- }
- let cellWidth: CGFloat = 217
- let cellPadding: CGFloat = 26
- var page: Int = Int((scrollView.contentOffset.x - cellWidth / 2) / (cellWidth + cellPadding) + 1)
- if velocity.x > 0 {
- page += 1
- }
- if velocity.x < 0 {
- page -= 1
- }
- page = max(page, 0)
- // Сменилась страничка, можно передать ее номер делегату или контроллеру
- let newOffset: CGFloat = CGFloat(page) * (cellWidth + cellPadding)
- scrollView.setContentOffset(CGPoint(x:newOffset, y:0), animated: true)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement