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 efecto

cambiando 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)

Respuestas a la pregunta(1)

Su respuesta a la pregunta