2010-05-06 17 views

Odpowiedz

16

To przypuszczenie:

Jest możliwe, że jeden z twoich poglądów ma backgroundColor ustawiony na biały i jest całkowicie pokryta przez innego widoku. Podczas obrotu, być może błędy zmiennoprzecinkowe powodują, że jedna krawędź nieznacznie pokazuje się przez tę krawędź.

Aby zbadać tę sprawę, można użyć nieudokumentowanej metody [UIView recursiveDescription], aby szybko przejrzeć hierarchię widoków (nie ma potrzeby przesyłania kodu za pomocą tej metody, służy tylko do debugowania). Gdy już wiemy, które widoki są blisko dna, można wydrukować swoje backgroundColors, lub po prostu ustawić je wszystkie do [UIColor clearColor].

Również Zgaduję, wiesz już, to jedno, ale może być przydatny do ustawiania window.backgroundColor = [UIColor clearColor] u początek twojego kodu!

+1

Dzięki Tyler! window.backgroundColor = [UIColor clearColor]; Prace!! – ohho

+0

Dziękujemy! Działa to doskonale! – nonamelive

+1

+1 window.backgroundColor = [UIColor clearColor]; działa również dla mnie :) – matm

0

Miałem ten sam problem. Widziałem, że w narzędziu do budowania interfejsów automatyczne włączanie widoku nie mogło zostać włączone. Usunąłem .xib i ponownie utworzyłem go, upewniając się, że produkt został ustawiony na "ipad" podczas tworzenia pliku (dodaj nowy plik w xcode).

0

Można również ustawić kolor tła na zero. Z dokumentacji UIView dla backgroundColor:

Domyślna wartość wynosi zero, co skutkuje przezroczystym tłem koloru.

UIWindow dziedziczy po UIView, więc to też działa. Prawdopodobnie dobry pomysł na użycie zera, w przypadku, gdy [UIColor clearColor] nie zawsze jest najlepszym sposobem na zrobienie tego.

Zabawne jest to, że mam projekt bez stalówek, więc utworzyłem UIWindow w kodzie, ale kolor tła był biały, zanim ustawiłem go na zero. jest domyślnym kolorem tła programowo utworzonego interfejsu UIWindow biały?

Powiązane problemy