![Swift](https://camo.githubusercontent.com/9f6a2598c6c70905fdec2135eb755058d9b9a030fe8143a19d25415d5c315887/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f73776966742d342d6f72616e67652e7376673f7374796c653d666c6174)
import UIKit
import PageControl
class ViewController: UIViewController, UIScrollViewDelegate {
@IBOutlet weak var scrollView: UIScrollView!
@IBOutlet weak var pageControl: PageControl!
override func viewDidLoad() {
super.viewDidLoad()
scrollView.delegate = self
pageControl.numberOfPages = Int(scrollView.contentSize.width / scrollView.bounds.width)
pageControl.addTarget(self, action: #selector(pageControlDidChangeCurrentPage(_:)), for: .valueChanged)
}
func pageControlDidChangeCurrentPage(_ pageControl: PageControl) {
scrollView.setContentOffset(CGPoint(x: scrollView.bounds.width * CGFloat(pageControl.currentPage), y: 0), animated: true)
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView.isDragging || scrollView.isDecelerating {
let page = scrollView.contentOffset.x / scrollView.bounds.width
pageControl.setCurrentPage(page)
}
}
}
![License](https://camo.githubusercontent.com/a0b33190a5b811e891e906999813fbbc846f8e51c65f1babea038fb8760fa2fe/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d6c69676874677265792e7376673f7374796c653d666c6174)