How can i change the page on clicking the dots of UIPageControl How can i change the page on clicking the dots of UIPageControl ios ios

How can i change the page on clicking the dots of UIPageControl


You can create one event change page:

- (IBAction)changePage:(id)sender {    UIPageControl *pager=sender;    int page = pager.currentPage;    CGRect frame = imageGrid_scrollView.frame;    frame.origin.x = frame.size.width * page;    frame.origin.y = 0;    [imageGrid_scrollView scrollRectToVisible:frame animated:YES];}

Bind it to Pagecontrol's value changed event.


This is very useful for pagecontrol dots click action change page index for swift 3 and swift 4 .

@IBAction func pageControlSelectionAction(_ sender: UIPageControl) {    let page: Int? = sender.currentPage    var frame: CGRect = self.yourcollectionview.frame    frame.origin.x = frame.size.width * CGFloat(page ?? 0)    frame.origin.y = 0    self.yourcollectionview.scrollRectToVisible(frame, animated: true)}


Just to complete Banker Mittal's answer, the easiest way to do it in swift is to scroll the wanted rect to visible. You don't have to take care of "left" and "right" scrolling because iOS itself realizes which dot you tapped so you can just scroll to the correct frame:

private func moveScrollViewToCurrentPage() { //You can use your UICollectionView variable too instead of my scrollview variable            self.scrollView                .scrollRectToVisible(CGRect(                    x: Int(self.scrollView.frame.size.width) * self.pager.currentPage,                    y: 0,                     width:Int(self.scrollView.frame.size.width),                    height: Int(self.scrollView.frame.size.height)),                                     animated: true)    }