iOS - Ayuda matemática - los zooms de imagen base con gesto de pellizco necesitan imágenes superpuestas ajustan X / Y acordes relativos

Tengo una aplicación para iPad que tiene una imagen base UIImageView (en este caso, un gran edificio o plano o diagrama del sitio) y luego se pueden agregar varios 'pines' al plan (visualmente similar a Google Maps). Estos pines también son UIImageViews y se agregan a la vista principal en los gestos de toque. La imagen base también se agrega a la vista principal en viewDidLoad.

Tengo la imagen de la base trabajando con el gesto de pellizco para hacer zoom, pero obviamente, al ampliar la imagen de la base, todos los pines permanecen en las mismas coordenadas x e y de la vista principal y pierden la posición relativa en la imagen base (cuyas x, y e ancho, las coordenadas de altura han cambiado).

Hasta ahora tengo esto ...

- (IBAction)planZoom:(UIPinchGestureRecognizer *) recognizer;
{
    recognizer.view.transform = CGAffineTransformScale(recognizer.view.transform, recognizer.scale, recognizer.scale);
    recognizer.scale = 1;

    for (ZonePin *pin in planContainer.subviews) {
        if ([pin isKindOfClass:[ZonePin class]]){
            CGRect pinFrame = pin.frame;

            // ****************************************
            // code to reposition the pins goes here...
            // ****************************************

            pin.frame = pinFrame;
        }
    }
}

Necesito ayuda para calcular los cálculos matemáticos para volver a colocar las coordenadas x / y de los pines para conservar la posición relativa en el plano / diagrama ampliado o reducido. Obviamente, los pines no quieren ser escalados / ampliados en términos de su ancho o altura; solo necesitan nuevas coordenadas x e y que sean relativas a las posiciones iniciales en el plan.

Yo mismo he tratado de calcular las matemáticas, pero he luchado para resolverlas y, lamentablemente, todavía no conozco el SDK lo suficiente como para saber si hay alguna disposición disponible para ayudar o no.

¡La ayuda con este problema relacionado con las matemáticas sería muy apreciada! :)

Muchas gracias, Michael. InNeedOfMathTuition.com

Respuestas a la pregunta(2)

Su respuesta a la pregunta