2012-09-13 3 views

Antwort

18

Einige Benutzer haben berichtet, dass es nach dem Hinzufügen des Startbildes [email protected] (siehe unten) festgelegt wurde. Für die Aktualisierung auf iPhone5 habe ich Folgendes getan:

Autorotation ändert sich in iOS 6. In iOS 6 ist die shouldAutorotateToInterfaceOrientation: Methode von UIViewController veraltet. Stattdessen sollten Sie die Methoden supportedInterfaceOrientationsForWindow: und shouldAutorotate verwenden. So habe ich diese neuen Methoden (und behielt den alten für iOS 5 Kompatibilität):

-(BOOL)shouldAutorotate { 
    return YES; 
} 

- (NSUInteger)supportedInterfaceOrientations{ 
    return UIInterfaceOrientationMaskAllButUpsideDown;  
} 
  • Dann befestigte ich die automatischen Layout für Ansichten, die es benötigt.
  • Kopierte Bilder aus dem Simulator für Startansicht und Ansichten für den iTunes Store in PhotoShop und exportiert sie als PNG-Dateien.
  • Der Name des Standardbildes ist: ist die Größe [email protected] 640 x 1136 und die Bildschirmgröße 320 x 568.
  • Ich habe für iOS 4. Der Grund Abwärtskompatibilität gesunken ist, dass Dieser neue Xcode unterstützt den armv6-Code nicht mehr. Somit sind alle Geräte, die ich in der Lage bin jetzt zu unterstützen (Lauf ARMv7) können auf iOS 5.

Das ist alles aber nur war aufgerüstet werden erinnere mich an die Autorotation in iOS 5 und iOS 6 wegen der Änderungen zu testen im Wechsel.

+0

Die Splash-Screen-Bilder entfernen, das Projekt bereinigen und die Splash-Screen-Bilder lesen, löste es für mich! Danke! – rockstarberlin

3

Vor iPhone 5 Release, benutze ich nur

#define kViewHeight 460.f // or 480.f if you don't have a status bar 
#define kViewWidth 320.f 

Aber jetzt würde ich

#define kViewHeight CGRectGetHeight([UIScreen mainScreen].applicationFrame) 
#define kViewWidth CGRectGetWidth([UIScreen mainScreen].applicationFrame) 

stattdessen verwenden möchten.

Aber ich bin mir nicht sicher, ob es eine gute Lösung ist. Wie Sie sehen, senden Sie CGRectGetHeight([UIScreen mainScreen].applicationFrame) überall dort, wo Sie kViewHeight verwenden. Ich habe versucht,

extern float kViewHeight; // in .h 
float kViewHeight = CGRectGetHeight([UIScreen mainScreen].applicationFrame) // in .m 

zu verwenden, scheiterte jedoch mit einem Kompilierungsfehler.

Obwohl es gut funktioniert, denke ich, es muss eine bessere Problemumgehung geben. ;)

+0

Ich denke nicht, dass die Verwendung von CGRectGetHeight ([UIScreen mainScreen] .applicationFrame) jedes Mal zu Leistungsproblemen führen wird –

+0

@KaanDedeoglu Danke für Ihre Antwort! Ich habe die Leistung noch nicht getestet.Und ja, ich denke, es führt vielleicht nicht zu viel Leistungsproblem, deshalb stelle ich es hier als Antwort dar. ;) – Kjuly