Gibt es eine Möglichkeit, das Koordinatensystem nach einer Änderung Querformat zu konvertieren?

StackOverflow https://stackoverflow.com/questions/896994

  •  23-08-2019
  •  | 
  •  

Frage

In einer Ansicht-basierte iPhone OS-Anwendung, ändere ich die Ausrichtung von dem anfänglichen Hochformat auf ein Querformat (UIInterfaceOrientationLandscapeRight). Aber jetzt ist die x, y Ursprung (0,0) in der unten links Ecke (statt der üblichen oben links) und jedes Mal, wenn ich will etwas tun, die Koordinaten beinhaltet ich re- müssen Berechnung für das neue Koordinatensystem zu kompensieren. Ich habe auch bemerkt, dass meine Ansichten innerhalb des neuen Koordinatensystems werden normalerweise nicht manchmal verhalten. So ist es eine Möglichkeit, das Koordinatensystem ONCE zu konvertieren, nachdem ich die Orientierung wechseln, so dass ich denke an meine Koordinaten halten kann einen Ursprung haben in der oben links Ecke

War es hilfreich?

Lösung

Wenn Sie die empfohlene Ansatz der Anwendung ein tun Transformation auf Ihre Hauptansicht, um es zu drehen:

UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];
if (orientation == UIInterfaceOrientationLandscapeRight) 
{
    CGAffineTransform transform = primaryView.transform;

    // Use the status bar frame to determine the center point of the window's content area.
    CGRect statusBarFrame = [[UIApplication sharedApplication] statusBarFrame];
    CGRect bounds = CGRectMake(0, 0, statusBarFrame.size.height, statusBarFrame.origin.x);
    CGPoint center = CGPointMake(60.0, bounds.size.height / 2.0);

    // Set the center point of the view to the center point of the window's content area.
    primaryView.center = center;

    // Rotate the view 90 degrees around its new center point.
    transform = CGAffineTransformRotate(transform, (M_PI / 2.0));
    primaryView.transform = transform;
}   

dann all Subviews Sie in dieser Hauptansicht hinzufügen sollte die Standard-Koordinatensystem verwenden. Die Transformation, die angewandt wird, um die Hauptansicht nimmt die Koordinaten der Subviews rotierenden, sowie. Das funktioniert gut für mich in meiner Anwendung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top