Siehe am unteren Rand des Bildschirms ein weißes Band, während Blick auf Fenster programmatisch in iPhone hinzufügen?

StackOverflow https://stackoverflow.com/questions/1458061

Frage

Wenn ich eine Ansicht basiertes Projekt in Xcode entwickelt, arbeitet Meine Sicht in Ordnung. Aber wenn ich ein Fenster basiertes Projekt verwenden und einen Blick auf meinem eigenen erstellen und versuchen, es als ein Subview Fenster hinzufügen, es gibt mir ein weißes Band am unteren Rande. Ich konfrontiert nie dieses Problem vor, aber es erstmals gegenüber.

War es hilfreich?

Lösung

Die meisten wahrscheinlich, was passiert ist, dass Sie hinzufügen eine Ansicht entsprechend bemessen, um eine Statusleiste, um das Fenster für die Verwendung, deren Größe enthält die Statusleiste.

Der Bildschirm des iPhone ist 480px hoch, und die oberen 20 Pixel aus, die für die Gerätestatusleiste (die mit der Signalstärke / WiFi-Indikator, Taktgeber, etc.) zugeordnet. Normalerweise wird eine Ansicht für die verbleibende 460PX des Fensters bemessen sein, und wenn Sie einen Blick-basierte Anwendung zu entwickeln, das ist in Ordnung -. Dass Anwendungsvorlage bereits eine Ansicht 320x460 Wurzel sieht vor, dass alle anderen Subviews zu erhalten hinzugefügt

Aber da du zum Fenster sind das Hinzufügen, die alle 480px des Bildschirms erstreckt, meine Vermutung ist, dass Ihre Sicht nur 20px ist zu kurz. Versuchen, die Höhe der Ansicht zu ändern, oder Einstellen seiner y-Offset.

Andere Tipps

Sie shoud immer die Größen gesetzt durch die Auflösung von UIScreen bekommen

UIView *controllersView = [myViewController view]; // get the view
[controllersView setFrame:[[UIScreen mainScreen]applicationFrame]]; // set the Framesize

Diese stellt automatisch den Ursprung x = 0 und y = 20. Denken Sie daran, dass Sie diese Methode kann stattdessen von manuelle Einstellung des Ursprungs y = 20, weil die Bildschirmauflösung verwenden, sollte sich ändern, als es mit dem neuen iPhone 4 sein wird.

Das Komische ist, dass auch Apple Hello World Beispiel für das iPhone, den Fehler 20 Pixel bekommen hat, ohne richtig die Ansichten Frame-Einstellung.

Falls jemand wissen muss, ist der Code, den Ursprung zu kompensieren etwas würde wie folgt aussehen:

CGRect frame = myController.view.frame;
frame.origin.y = 20.0;
myController.view.frame = frame;

Wenn Sie Interface Builder verwenden Sie auf der Ansicht klicken können, gehen Inspektor zuzuschreiben und Statusleiste keine ändern. Sie dann müssen einfach nur die Höhe der Ansicht in der Größe Inspektoren bis 480 einzustellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top