Escalando el punto actual de UIPageControl y manteniéndolo centrado
He subclasificado UIPageControl para tener su punto actual más grande.
class CustomPageControl: UIPageControl {
override var currentPage: Int {
didSet {
updateDots()
}
}
func updateDots() {
let currentDot = subviews[currentPage]
let largeScaling = CGAffineTransform(scaleX: 3, y: 3)
subviews.forEach {
// apply the large scale of newly selected dot
// restore the normal scale of previously selected dot
$0.transform = $0 == currentDot ? largeScaling : .identity
}
}
}
Pero el resultado de la transformación no está centrado (el punto rojo debe estar alineado con los demás):
Lo he intentado (en iOS 12):
cambiando elframe
ocenter
decurrentDot
no tiene efectocambiando la transformación para incluir unatranslatedBy(x: CGFloat, y: CGFloat)
no tiene efectocambiando las restriccionescomo aqu está haciendo el primer salto de puntos:
currentDot.translatesAutoresizingMaskIntoConstraints = false
currentDot.centerYAnchor.constraint(equalTo: self.centerYAnchor, constant: 0)
currentDot.centerXAnchor.constraint(equalTo: self.centerXAnchor, constant: 0)