iOS - Mathematische Hilfe - Beim Zoomen von Basisbildern mit einer Kneifbewegung müssen überlagerte Bilder die X / Y-Koordinaten relativ zueinander anpassen

Ich besitze eine iPad-Anwendung mit einem UIImageView-Basisbild (in diesem Fall ein großes Gebäude, ein Lageplan oder ein Diagramm) und dann können mehrere Stecknadeln über dem Plan hinzugefügt werden (optisch ähnlich wie bei Google Maps). Diese Pins sind auch UIImageViews und werden der Hauptansicht bei Tippen auf Gesten hinzugefügt. Das Basis-Image wird auch der Hauptansicht von viewDidLoad hinzugefügt.

Ich habe das Basisbild, das mit der Pinch - Geste zum Zoomen arbeitet, aber offensichtlich bleiben beim Zoomen des Basisbildes alle Pins in den gleichen x - und y - Koordinaten der Hauptansicht und verlieren ihre relative Position auf dem Basisbild (deren x, y und Breiten- und Höhenkoordinaten haben sich geändert).

Soweit ich das habe ...

- (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;
        }
    }
}

Ich brauche Hilfe bei der Berechnung der Mathematik, um die x / y-Koordinaten der Stifte neu zu positionieren und die relative Position auf dem vergrößerten oder verkleinerten Plan / Diagramm beizubehalten. Die Stifte möchten offensichtlich überhaupt nicht in Bezug auf ihre Breite oder Höhe skaliert / gezoomt werden - sie benötigen lediglich neue x- und y-Koordinaten, die relativ zu ihren Anfangspositionen auf dem Plan sind.

Ich habe versucht, die Mathematik selbst zu erarbeiten, habe jedoch Mühe, sie durchzuarbeiten, und bin leider noch nicht mit dem SDK vertraut genug, um zu wissen, ob eine integrierte Bereitstellung verfügbar ist, um zu helfen oder nicht.

Hilfe bei diesem mathematischen Problem wäre sehr dankbar! :)

Vielen Dank, Michael. InNeedOfMathTuition.com

Antworten auf die Frage(2)

Ihre Antwort auf die Frage