viewpager pagecontroller page control swift uipageviewcontroller uipagecontrol

swift - pagecontroller - Aumente el tamaño del indicador en UIPageViewController de UIPageControl



swift pagecontroller (5)

Añadir una extensión al controlador de página.

extension UIPageControl { func customPageControl(dotWidth: CGFloat) { for (pageIndex, dotView) in self.subviews.enumerated() { dotView.frame.size = CGSize.init(width: dotWidth, height: dotWidth) } } }

¿Es posible aumentar el tamaño del indicador en UIPageViewController ?

Tengo esto:

Y mi requisito es este:


Al escalar el control de la página se escalarán los puntos, pero también se escalará el espaciado entre ellos.

pageControl.transform = CGAffineTransform(scaleX: 2, y: 2)

Si desea mantener el mismo espacio entre puntos, deberá transformar los puntos individualmente:

pageControl.subviews.forEach { $0.transform = CGAffineTransform(scaleX: 2, y: 2) }

Sin embargo, si lo hace en viewDidLoad , la transformación se ha restablecido en el momento en que aparece la vista, por lo que debe hacerlo en viewDidLayoutSubviews ...

override func viewDidLayoutSubviews() { pageControl.subviews.forEach { $0.transform = CGAffineTransform(scaleX: 2, y: 2) } }


En primer lugar, cree un objeto uiPageControl dentro de viewDidLoad () y luego establezca su posición y según sus requisitos, luego aplique la escala requerida usando CAAffiniteTransform como se muestra a continuación:

var pageControl = UIPageControl() pageControl.pageIndicatorTintColor = UIColor.gray pageControl.currentPageIndicatorTintColor = UIColor.yellow pageControl.transform = CGAffineTransform(scaleX: 1.3, y: 1.3) // set dot scale of pageControl pageControl.backgroundColor = UIColor.darkGray pageControl.numberOfPages = 3 pageControl.center = self.view.center self.view.addSubview(pageControl) // add pageControl to view pageControl.layer.position.y = self.view.frame.height - 100; // y position of the pageControl


Puedes usar un UIPageControl y escalarlo así:

@IBOutlet weak var pageControl: UIPageControl! override func viewDidLoad() { super.viewDidLoad() pageControl.transform = CGAffineTransform(scaleX: 2, y: 2); //set value here }

El problema con eso es que el espacio entre tus puntos también se incrementará. Si desea tener un diseño preciso con su punto, debe utilizar los controles de 3party: https://www.cocoacontrols.com/


Para Swift 2.0 aumentar o disminuir el tamaño del indicador de control de página

self.pageControl.transform = CGAffineTransformMakeScale(0.8, 0.8)

O

self.pageControl.transform = CGAffineTransformMakeScale(1.3, 1.3)