2017-09-18 4 views
1

Ich versuche, meine App in iPhone X kompatibel zu konvertieren. Ich habe eine Tabelle in meinem Viewcontroller mit Top-Layout 20 Pixel. Jetzt unten ist der Screenshot für beide GeräteiPhone X Topbar Problem

iPhone 8 iPhone 8

iPhone X iPhone-X

Jetzt bin ich ein weißes Top Bar mit dem farbigen Hintergrund in iPhone x bekommen.

Falls ich ein Top-Layout für die Tabelle auf 0 mache, dann überlappen Zellen die Topbar, die ich nicht brauche.

Kann jemand vorschlagen, was das Problem ist? Jeder Vorschlag wäre großartig.

Antwort

2

Ändern Sie den Hintergrund der Hauptansicht des View-Controller auf die gewünschte Farbe:

enter image description here enter image description here

2

Sie sollten sich nicht dem oberen Layout, sondern dem neuen sicheren Bereich anpassen. Dann sollte alles in Ordnung sein.

+0

können Sie bitte ein bisschen mehr erklären? –

+0

Hier können Sie darüber lesen: "Alle Apps sollten die von UIKit definierten sicheren Bereiche und Layout-Ränder einhalten, die je nach Gerät und Kontext eine sinnvolle Einblendung gewährleisten." https://developer.apple.com/ios/human-interface-guidelines/overview/iphone-x/ – Alper

1

hinzufügen in Appdelegate.m

if ([UIScreen mainScreen].bounds.size.height >= 812) 
    { 
     [application setStatusBarStyle:UIStatusBarStyleLightContent]; 
     self.window.clipsToBounds =YES; 
     self.window.frame = CGRectMake(0,40,self.window.frame.size.width,self.window.frame.size.height-20); 
    } 
2

Sie können Hintergrundfarbe für die obere Leiste festgelegt (Statusleiste) während des Programmstarts oder während viewDidLoad Ihres View - Controllers.

Hier



ist Ergebnis:

enter image description here

1

, wie Sie dieser weiße Raum sehen können, ist im Grunde der Header, ich weiß nicht, warum es in iPhone X. passiert nur versuchen Methode zu überschreiben

- (CGFloat) tableview: (UITableView *) tableview heightForHeaderInSection: (NSInteger) Abschnitt

dann zurück 0.01f;

ausprobiert und perfekt funktioniert