2010-05-06 4 views
7

Beim Drehen einer Ansicht von UIInterfaceOrientationPortrait auf UIInterfaceOrientationPortraitUpsideDown auf dem iPad-Simulator gibt es einen weißen Rand entlang einer Seite der Ansicht (siehe diagram, unten links im Bild). Die weiße Grenze zeigt nur auf einer Seite, aber nicht auf der gegenüberliegenden Seite. Wie kann ich verhindern (verstecken)? Vielen Dank!Ärgerliche weiße Umrandung beim Drehen einer Ansicht in iPad

Antwort

16

Dies ist eine Vermutung:

Es ist möglich, dass einer Ihrer Ansichten, die einen Backgroundcolor auf weiß gesetzt hat, und sie durch eine andere Ansicht vollständig bedeckt ist. Während einer Drehung führen möglicherweise Gleitkommafehler dazu, dass ein Rand durch diese Kante leicht angezeigt wird.

Um diesen Fall zu untersuchen, können Sie die undokumentierte Methode [UIView recursiveDescription] verwenden, um einen kurzen Blick auf Ihre Ansichtshierarchie zu werfen (Sie müssen keinen Code mit dieser Methode einreichen, sondern nur zum Debuggen). Sobald Sie wissen, welche Ansichten in der Nähe der Unterseite sind, können Sie ihre backgroundColors ausdrucken, oder setzen sie einfach alle zu [UIColor clearColor].

Auch ich bin zu raten Sie bereits dieses man wissen, aber es kann nützlich sein, window.backgroundColor = [UIColor clearColor] am einzustellen Start deines Codes!

+1

Danke Tyler! window.backgroundColor = [UIColor clearColor]; funktioniert !! – ohho

+0

Vielen Dank! Das funktioniert perfekt! – nonamelive

+1

+1 window.backgroundColor = [UIColor clearColor]; funktioniert auch für mich :) – matm

0

Ich hatte das gleiche Problem. Ich habe gesehen, dass im Interface-Builder die automatische Größenanpassung für die Ansicht nicht aktiviert werden konnte. Ich habe die .xib gelöscht und neu erstellt, um sicherzustellen, dass das Produkt beim Erstellen der Datei auf "ipad" gesetzt wurde (neue Datei in xcode hinzufügen).

0

Sie können die Hintergrundfarbe auch auf Null setzen. Aus der UIView-Dokumentation für backgroundColor:

Der Standardwert ist Null, was zu einem transparenten Hintergrund Farbe führt.

UIWindow erbt von UIView, also funktioniert das auch. Wahrscheinlich ist es eine gute Idee, nil zu verwenden, falls [UIColor clearColor] nicht immer der beste Weg ist.

Die lustige Sache ist, ich habe ein Projekt ohne Nibs, also erstelle ich das UIWindow im Code, aber die Hintergrundfarbe war weiß, bevor ich es auf Null setzte. ist die Standardhintergrundfarbe eines programmatisch erstellten UIWindow-Weiß?

Verwandte Themen