He configurado PageViewControll con 2 vistas. Puedo moverme entre las vistas y el control de página (puntos) corresponde a la página correcta; sin embargo, al tocar los puntos no se desplaza a la vista correcta todavía.
Encontré algunas respuestas aquí sobre cómo crear la función, pero no pude implementarla correctamente para que funcione. El código para el controlador de página está debajo (sin la función de toque) El código completo es:
func configurePageControl() { pageControl = UIPageControl(frame: CGRect(x: 0,y: UIScreen.main.bounds.maxY - 50,width: UIScreen.main.bounds.width,height: 50)) self.pageControl.numberOfPages = viewControllerList.count self.pageControl.currentPage = 0 self.pageControl.alpha = 0.5 self.pageControl.tintColor = UIColor.white self.pageControl.pageIndicatorTintColor = UIColor.black self.pageControl.currentPageIndicatorTintColor = UIColor.white self.view.addSubview(pageControl) } @IBAction func pageControltapped(_ sender: Any) { guard let pageControl = sender as? UIPageControl else { return } let selectedPage = pageControl.currentPage self.setViewControllers([viewControllerList[selectedPage]], direction: .forward, animated: true, completion: nil) } }¡¡Gracias por cualquier ayuda!!
Debe crear IBAction para pageControl desde el cual puede detectar qué punto se tocó.
Luego, debe usar setViewControllers(_:direction:animated:completion:) para desplazarse por la página mediante programación.
func setViewControllers(_ viewControllers: [UIViewController]?, direction: UIPageViewController.NavigationDirection, animated: Bool, completion: ((Bool) -> Void)? = nil)Utilice el siguiente código:
@IBAction func pageControltapped(_ sender: Any) { guard let pageControl = sender as? UIPageControl else { return } let selectedPage = pageControl.currentPage self.setViewControllers([viewControllerList[selectedPage]], direction: .forward, animated: true, completion: nil) }Agregue destino para pageControl para vincularlo con IBAction:
func configurePageControl() { //...your code as it is.... //add following line self.pageControl.addTarget(self, action: #selector(pageControltapped(_:)), for: .touchUpInside) }