UIVIewController неправильная позиция перед поворотом - PullRequest
0 голосов
/ 16 июня 2010

У меня есть начальная точка приложения: это окно (белый фон):

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    mainScreen = [[MainScreenController alloc] initWithNibName:@"MainScreenController" bundle:[NSBundle mainBundle]];

    // add it to the main window
    [window  addSubview:[mainScreen view]];

    // show view
    [window makeKeyAndVisible];

    NSLog(@"started");

    return YES;
}

И MainScreenController - это UIViewController с (blackBackground), созданный Интерфейсным Разработчиком.

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

Если я дважды поверну iPhone, изображение будет идеально расположено в нужном месте, заполняя весь экран черным фоном.

Есть идеи?

Спасибо!

1 Ответ

0 голосов
/ 16 июня 2010

Проверьте настройки MainScreenController в IB. Вам следует выбрать смоделированный элемент строки состояния (cmd-1), чтобы представление изначально располагалось ниже строки состояния.

РЕДАКТИРОВАТЬ - Почему вы вызываете initWithNibName в вашем делегате здесь? Большинство шаблонов приложений, которые я использовал, имели перо основного вида, инициализированное ОС, и вы используете IB и устанавливаете IBOutlet в основном интерфейсе VC. Возможно, у вас есть начальный источник фрейма {0,0} после вызова initWithNibName. Добавьте эти строки после вызова initWithNibName, чтобы проверить это:

NSLog(@"mainscreen frame=%@", NSStringFromCGRect(mainscreen.view.frame));

CGRect frame = mainscreen.view.frame;
frame.origin.y = 20;  // move below status bar
mainscreen.view.frame = frame;
...