2016-04-27 12 views
1

Ich mache eine iOS-App und benutze Xib-Dateien anstelle von Storyboards. Zuerst musste ich nicht einmal Auto-Layout verwenden, alles funktionierte für alle iPhone-Geräte im Hochformat. Aber sobald ich einen Startbildschirm durch Assests hinzugefügt habe, hat nur das iPhone 5 das richtige Layout (weil xib Dateigröße auf 4 Zoll eingestellt ist). Aber jede größere Bildschirmgröße und nur die linke obere Ecke ist wie unten bedeckt:Willst Xib-Datei den ganzen Bildschirm abdecken, anstatt oben links zu verdecken.

enter image description here

Ich mag die Ansicht den ganzen Bildschirm zu decken. Es gibt eine Ansicht oben, aber ich kann keine Einschränkungen hinzufügen. In der Ansicht befindet sich eine Bildansicht, die den gesamten Bildschirm abdecken soll. Also fügte ich 4 Constraints hinzu und fixierte die 4 Seiten mit 0, so dass die Bildansicht den gesamten Bildschirm abdecken sollte. Aber es funktioniert immer noch nicht. Was kann ich tun, damit der ganze Bildschirm abgedeckt wird?

+0

vor _launch screen_ der Bildschirm nur von iOS skaliert und Sie haben nicht die richtige iPhone6 ​​/ 6s Bildschirmunterstützung; Jetzt mit dem _Launch-Bildschirm_ iOS macht keine Upsampling, Sie müssen die Schnittstelle mit Auto-Layout richtig einrichten, um Ihr Layout auf mehrere Bildschirmgrößen zu übernehmen - deshalb sieht Ihre App in der oberen linken Ecke aus ; Es ist kein xib vs. Storyboard-Problem, die Einschränkungen müssen nur implementiert werden. – holex

Antwort

0

Haben Sie versucht, den Rahmen zu setzen?

NSArray *array = [[NSBundle mainBundle] loadNibNamed:@"xibFileName" owner:nil options:nil];   
[[array objectAtIndex:0] setFrame:self.view.frame]; // Trick here: set the main view frame 

Das funktionierte in meinem Fall:

// Create a Container 
    UIView *container = [[UIView alloc] initWithFrame:self.view.frame]; 
    container.backgroundColor = [UIColor clearColor]; 

// Add .xib file on top of the screen 
    NSArray *array = [[NSBundle mainBundle] loadNibNamed:@"xibFileName" owner:nil options:nil];   
    [container addSubview:[array objectAtIndex:0]]; 

// Add container to main view 
    [self.view addSubview:container]; 

Über die itens innerhalb von .xib Datei, die Sie dort die Einschränkungen einstellen müssen.