Nie jestem pewien, dlaczego UIView jest poruszany o około 10px
Stworzyłem prostą aplikację na iPhone'a, która ma dwa pliki .xib. W delegatorze aplikacji, gdy aplikacja zakończyła uruchamianie, wyświetlam pierwszy plik .xib, dzwoniąc:
<code>[window addSubview:myView]; </code>
i robię to samo na IBAction dla UIButton, aby zmienić widok na myView2.
Odkryłem, że gdy uruchamiam aplikację, jest to biały pasek o wielkości około 10 pikseli dla obu widoków. Zauważam również, że przyciski są przesunięte o 10 pikseli (w przybliżeniu). Mam więc wrażenie, że widok jest wyświetlany z 10 pikseli na ekranie i kończy się krótko.
Jakiś pomysł, dlaczego tak się dzieje, jak mogę to naprawić lub jak mogę dalej debugować, co się dzieje? Sprawdziłem moje pliki .xib i zużywają pełną wysokość urządzenia (tj. Brak białych pasków), więc wygląda to na problem wewnątrz XCode.
EDYTUJ: Zawęziłem trochę problem. Używam dwóch metod do załadowania widoku podrzędnego. Kiedy ładuję pierwszy widok do środkaapplicationDidFinishLaunching
wszystko w porządku. Jeśli jednak zamienię dwie wiadomości nawindow
z[self originalView]
metoda, wtedy wszystko idzie trochę haywire.
<code>- (void)applicationDidFinishLaunching:(UIApplication *)application { //[self originalView]; <- I want to use this instead of the following two lines // Override point for customization after app launch [window addSubview:viewController.view]; [window makeKeyAndVisible]; } -(void)endView{ endV = [[EndViewController alloc] initWithNibName:@"EndView" bundle:nil]; [window removeFromSuperview]; [window addSubview:endV.view]; } -(void)originalView{ viewController = [[MyAppViewController alloc] init]; [window removeFromSuperview]; [window addSubview:viewController.view]; } </code>
Z tego co widzę, zawsze nazywam te same linie kodu, bez względu na to, czy jest wewnątrzapplicationDidFinishLaunching
lub w[self originalView]
ale wygląda na towindow
okazuje się być innym obiektem.