iPhone App im Querformat, 2008 Systeme

  • Hinweis: Diese Frage stammt aus dem Jahr 2008 und ist jetzt nur von historischem Interesse.


    Was ist das Beste? So erstellen Sie eine iPhone-Anwendung, die unabhängig von der Position des Geräts von Beginn an im Querformat ausgeführt wird?

    Sowohl programmgesteuert als auch mit dem Interface Builder.

    05 September 2017
    Vadim Kotovchester89
6 answers
  • Nur historische Antwort. Spektakulär veraltet:

    Bitte beachten Sie, dass diese Antwort jetzt nicht mehr aktuell ist.

    Dieser Beitrag ist nur eine historische Neugier .


    Aufregende Neuigkeiten! Wie Andrew unten herausfand, wurde dieses Problem von Apple in 4.0 + behoben.

    Es scheint, dass es NICHT mehr notwendig ist, die Größe der Ansicht in jeder Ansicht zu erzwingen, und Das spezifische ernste Problem, dass Landschaft "nur beim ersten Mal" funktioniert, wurde behoben.

    Ab April 2011 ist es nicht möglich, etwas unter 4.0 zu testen oder gar zu bauen, so das Die Frage ist eine historische Neugier. Es ist unglaublich, wie viel Mühe Entwickler für so lange Zeit verursacht haben!


    Hier ist die ursprüngliche Diskussion und Lösung. Dies ist jetzt völlig irrelevant, da diese Systeme nicht einmal funktionsfähig sind.


    Es ist extrem schwierig, dies vollständig zu machen - da gibt es Mindestens drei Probleme / Fehler im Spiel.

    Versuchen Sie Folgendes. Interface-Builder-Landschaftsdesign

    Beachten Sie insbesondere, dass dort "und Sie sollten shouldAutorotateToInterfaceOrientation überall richtig verwenden" es bedeutet überall, alle Ihre Vollbild-Ansichten.

    Ich hoffe, es hilft in diesem Albtraum!

    Eine wichtige Erinnerung an das bekannte ADDITIONAL-Problem: Wenn Sie versuchen, zwischen der MEHR ALS EINE Ansicht zu wechseln (alle Landschaften) , ES FUNKTIONIERT EINFACH NICHT . Es ist wichtig, sich daran zu erinnern, sonst verschwenden Sie Tage für das Problem. Es ist buchstäblich NICHT MÖGLICH. Es ist der größte offene, bekannte Fehler auf der iOS-Plattform. Es gibt buchstäblich keine Möglichkeit, die Hardware dazu zu bringen, die zweite Ansicht, die Sie laden, als Querformat anzuzeigen. Die ärgerliche, aber einfache Problemumgehung und das, was Sie tun müssen, ist trivial

    11 February 2018
    Fattiedcinzona
  • Von der Apple Dev Site:

    So starten Sie Ihre Anwendung im Landschaftsmodus , sodass sich die Statusleiste im

    Listing 2: Starten Sie Ihre Anwendung im Querformat

     <key>UIInterfaceOrientation</key>
    <string>UIInterfaceOrientationLandscapeRight</string>
     
    31 August 2008
    Michael PryorUnknown user
  • Zusammenfassung und Integration aller Beiträge, nachdem ich sie selbst getestet habe; Überprüfen Sie das Update für 4.x, 5.x unten.

    Ab 3.2 können Sie die Ausrichtung einer laufenden Anwendung nicht aus dem Code heraus ändern.

    Sie können eine Anwendung jedoch mit einer festen Ausrichtung starten. Dies ist jedoch nicht einfach.

    Versuchen Sie es mit diesem Rezept:

    1. Setzen Sie Ihre Ausrichtung auf UISupportedInterfaceOrientations in der Datei Info.plist
    2. Definieren Sie in Ihrem Fenster einen 480x320 "Base View Controller". Jede andere Ansicht wird ihrer Ansicht als Unteransicht hinzugefügt.
    3. Richten Sie in allen Ansichtscontrollern die Methode shouldAutorotateToInterfaceOrientation: ein (um den von Ihnen in der plist definierten Wert natürlich zurückzugeben) < / li>
    4. In allen Ansichtscontrollern wird eine Hintergrundansicht mit

      self.view.frame = CGRectMake(0, 0, 480, 320)

      festgelegt in der Methode viewDidLoad.

    Update (iOS 4.x, 5.x): : Das Apple iOS App-Programmierhandbuch enthält im Abschnitt "Erweiterte App-Tricks" einen Absatz "Im Querformatmodus starten".

    Referenzen:

    18 June 2013
    NANNAVSerinEleven
  • Zuerst setze ich in info.plist

     <key>UIInterfaceOrientation</key>
    <string>UIInterfaceOrientationLandscapeRight</string>
     

    und füge diesen Code in applicationDidFinishLaunching ein:

     CGAffineTransform rotate = CGAffineTransformMakeRotation(1.57079633);
    [window setTransform:rotate];
    
    CGRect contentRect = CGRectMake(0, 0, 480, 320); 
    window.bounds = contentRect; 
    [window setCenter:CGPointMake(160.0f, 240.0f)]; 
     

    Auf diese Weise kann ich die Ansicht im Interface Builder im Querformat bearbeiten.

    20 November 2009
    samvermette
  • Ich bin überrascht, dass noch niemand mit dieser Antwort gekommen ist:

    In all meinen Tests, wenn ein modaler View-Controller deaktiviert wird, ist die bevorzugte Ausrichtung des übergeordneten View-Controllers der Fall Die Einstellung in shouldAutorotateToInterfaceOrientation wird auch als Teil eines UINavigationControllers berücksichtigt. Die Lösung hierfür ist einfach:

    Erstellen Sie einen Dummy-UIViewController mit einem UIImageView für einen Hintergrund. Legen Sie das Image auf das default.png-Image fest, das Ihre App beim Start verwendet.

    Wenn viewWillAppear in Ihrem Root-View-Controller aufgerufen wird, zeigen Sie einfach den Dummy-View-Controller ohne Animation an.

    Wenn viewDidAppear in Ihrem Dummy-View-Controller aufgerufen wird, verwerfen Sie den View-Controller mit einer schönen Kreuz-Überblend-Animation.

    Nicht nur funktioniert das, aber es sieht gut aus! Übrigens, nur zur Verdeutlichung mache ich die viewWillAppear des Root-View-Controllers folgendermaßen:

     - (void)viewWillAppear:(BOOL)animated
    {
     if ( dummy != nil ) {
      [dummy setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
      [self presentModalViewController:dummy animated:NO];
      [dummy release];
      dummy = nil;
     }
    ...
    }
     
    27 November 2010
    Arlen Anderson
  • Das neueste Programmierungshandbuch für das iPhone OS enthält einen vollständigen Abschnitt mit Beispielcode. Ich bin mir sicher, dass dies eine kürzlich hinzugefügte Ergänzung ist, also haben Sie es vielleicht verpasst. Es werden alle Bedingungen erläutert, die Sie erfüllen müssen. Im Grunde ...

    • legen Sie die Info.plist-Eigenschaften fest (dies ändert die Position der Statusleiste, nicht jedoch die Ansicht)
    • Drehen Sie Ihre Ansicht manuell um ihre Mitte, entweder in Ihrer UIViewController-Methode viewDidLoad: oder Ihrer applicationDidFinishLaunching: -Methode, oder implementieren Sie die automatische Rotation ("Autoresizing-Verhalten", Seite 124)
    • > >

      Suchen Sie nach "Starten im Querformat", Seite 102.

    05 September 2008