Не уверен, почему UIView подталкивается примерно на 10 пикселей

Я создал простое приложение для iPhone, в котором есть два файла .xib. В том случае, когда делегат приложения завершил запуск, я отображаю первый файл .xib, вызывая:

<code>[window addSubview:myView];
</code>

и я делаю то же самое на IBAction для UIButton, чтобы изменить представление на myView2.

Что я обнаружил, так это то, что при запуске приложения белая полоса размером около 10 пикселей для обоих видов. Я также заметил, что кнопки смещены на 10 пикселей (прибл.). Так что у меня сложилось впечатление, что вид отображается на расстоянии 10 пикселей от экрана и заканчивается коротким.

Любая идея, почему это может происходить, как я могу это исправить или как я могу дальше отлаживать то, что происходит? Я проверил свои файлы .xib, и они занимают всю высоту устройства (то есть не содержат белых полос), поэтому это выглядит проблемой внутри XCode.

РЕДАКТИРОВАТЬ: Я немного сузил проблему. Я использую два метода для загрузки подпредставления. Когда я загружаю первый вид внутриapplicationDidFinishLaunching Все отлично. Однако, если я заменю два сообщения наwindow с[self originalView] метод, то все идет немного сумасшедшим.

<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>

Из того, что я вижу, я всегда вызываю одни и те же строки кода, независимо от того, находится ли он внутриapplicationDidFinishLaunching или в[self originalView] но похожеwindow оказывается другим объектом.

Ответы на вопрос(5)

// adjust the frame of subview which is going to be add
self.navController.view.frame = CGRectMake(0, 0, 320, 460);
[self.view addSubView:self.navController.view];

Теперь он работает нормально, удачи ~ :)

UIViewController в неправильном месте. У меня такая же проблема. Это было решено перемещением[self.navigationController pushViewController: animated:] отviewDidLoad вviewDidAppear: в предыдущемUIViewController в иерархии.

интерфейса, которые будут отображаться программно (например, строка состояния или панель навигации). В инспекторе выберите свое представление и перейдите на вкладку «Атрибуты». Здесь вы можете смоделировать строку состояния, верхнюю или нижнюю панель.

Решение Вопроса

толкая его на UINavigationController), он регулирует свою рамку вида.

Поскольку вы добавляете подпредставление вручную, вам нужно настроить кадр самостоятельно. Начало координат находится в верхнем правом углу (вверху строки состояния). Вы хотите сдвинуть ваш взгляд на 20 пикселей вниз.

 mac_5528 июн. 2009 г., 18:24
Все примеры, которые я видел, используют UINavigationController для отображения иерархии списков, для чего он используется только? Или я могу использовать его для управления отображением представлений, даже если им не нужна панель навигации и т. Д.?

когда появляется странный пробел, или представление частично скрыто за строкой состояния, оно имеет какое-либо отношение к

shouldAutorotate definition in your root controller - not sure if it is a bug or not, but try to stay consistent with the return of that function for all sub-viewcontrollers (usually results in a viewcontroller being hidden behind the status bar) a wantsFullscreen definition of a subview - set to NO if possible

у меня были обе ошибки в моем приложении, и я решил их! Надеюсь, я смогу сэкономить вам время (я много потратил на это)

Ваш ответ на вопрос