2017-11-06 3 views
0

Meine alte iOS-App funktioniert gut in allen iPhone-Versionen (außer iPhone X-Modell). Ich stoße auf den iPhone X-Simulator und sehe, dass sich einige der Bildschirme am unteren Bildschirmrand des iPhone X überlappen. Meine Apps alle uiviewcontrollers programmgesteuert erstellt, nicht von Storyboard entwickelt. Also habe ich in allen View-Controllern (self.view.frame) nach seiner Frame-Größe gesucht. In iPhoneX gibt es einen sicheren Schutzbereich, um in Storyboard zu entwerfen. Aber wie berechne ich den Sicherheitsbereich in Runtime. Bei der Suche nach Google gibt es eine Probe, um einen sicheren Schutzbereich zu finden, der von iOS11 unterstützt wird. Aber ich möchte meine App von ios9 ausführen? Ich habe viele uiviewcontrollers in meinem Projekt. Also kann mir jemand einen einfachsten Weg, um diese Aufgabe zu tun sagen?Alte App für das iPhone X zu unterstützen?

+0

Wie wäre es mit iPhone 8? – SPlatten

+0

Haben Sie Splash Screen Image von 1125px × 2436px hinzugefügt? – Abhishek

+0

hinzugefügt Splash-Bildschirm Bild. Aber immer noch Probleme angefallen. – vinoth87

Antwort

0

Eine Möglichkeit, eine Laufzeit Update für iPhone X Layout-Probleme zu alt (pre-Storyboard-Handbuch Layout) Anwendungen (mit alten pre-11 Deployment-Zielen) hinzuzufügen, Objective-C-Code hinzuzufügen, ähnlich wie:

CGRect r0 = self.view.frame; 
CGRect r1 = r0; 
if (@available(iOS 11.0, *)) { 
    r1 = self.view.safeAreaLayoutGuide.layoutFrame;  
} 
if (r1.size.height < (r0.size.height - 20.0)) { 
    // fix top and bottom view overlap outside safe area here 
} 

innerhalb der ViewWillLayoutSubviews-Methode jedes UIViewControllers.

Mit dem @ available check wird dieser Code unter iOS-Versionen vor iOS 11 sicher verwendet.

+0

Ich habe xcode8.2 .. Ich werde neue iOS-App und UI-Design mit Storyboard erstellen ... Ich möchte meine Anwendung ohne Problem in iPhoneX ausführen. Wie kann ich es mit xcode8.2 machen? Wird es möglich sein? oder ich brauche xcode9. – vinoth87

+0

Sie benötigen Xcode 9, um das iPhone X zu unterstützen. Da Xcode 8.x das neue Gerät nicht kennt und die App schwarze Balken oben und unten am Ansichtsport der App hat. – sn3ek

Verwandte Themen