2009-10-04 22 views

Antwort

1

Das können Sie ausprobieren.

Wenn Sie die Ausrichtung der Ansicht ändern möchten, während auf der Ansicht zu berühren, dann die Schritte

  1. Implementieren Sie die touchesBegan Methode innerhalb der Ansicht.

  2. Im touchesBegan Verfahren die aktuelle Geräteausrichtung, überprüfen [[UIDevice currentDevice] orientation];

  3. Wenn Sie die CGAffineTransformation Methode auf der Ansicht ändern möchten verwenden, um die Ausrichtung dann als viewRef.transform = CGAffineTransformMakeRotation(angle);

8

Wenn Sie das Set Geometrie Ihrer UI-Elemente in Interface Builder, stellen Sie dann sicher, dass Sie die Autosizing Attribute im Größeninspektor (Cmd + 3) festlegen. Sie können dann sehen, wie die Ansicht nach dem Drehen aussieht, indem Sie auf den kleinen "Drehen" -Knopf oben links in der Titelleiste Ihrer Ansicht in Interface Builder klicken.

Sobald Sie alle haben, die eingerichtet haben, außer Kraft setzen nur die folgende Methode in Ihrem Viewcontroller:

public override bool ShouldAutorotateToInterfaceOrientation (UIInterfaceOrientation toInterfaceOrientation) 
{ 
    return true; 
} 

nun im Simulator, Sie alle drehen können Sie und Ihre UI wird automatisch anzupassen.

+0

Gees, ich konnte nicht glauben, wie einfach das war! :) Dies sollte auf jeden Fall als die richtige Antwort gekennzeichnet werden. Vielen Dank. – BruceHill

1

Nur damit jeder weiß, es ist jetzt auf die Ansichten Transform-Objekts:

View.Transform.Rotate(3.14159f * 0.5f); 

Für alle Typen wie mich Dotnet, die nicht wollen, etwas verwenden, die CGAffineTransform ist, dachte, es andere Dinge brechen , Probier es einfach. Arbeitete großartig für meine Instanz. Die NavigationController.View wurde gedreht und alles darin ist perfekt.

+0

das rotiert nur eine bestimmte Ansicht, wenn es in einem UINavigationController ist, wird die Navigationssteuerleiste auf der falschen Seite des Bildschirms sein. –