Почему мой UIVIew загружается вне экрана? - PullRequest
2 голосов
/ 18 января 2011

Когда мое приложение запускается, я выполняю этот код:

LViewController *aLViewController = [[LViewController alloc] initWithNibName:@"LViewController" bundle:[NSBundle mainBundle]];
self.viewController = aLViewController;
[aLViewController release];  
[window addSubview:[viewController view]];

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

1 Ответ

2 голосов
/ 18 января 2011

Вы должны учитывать высоту строки состояния при добавлении вида в окно:

CGRect statusBarFrame = [[UIApplication sharedApplication] statusBarFrame];
CGSize statusBarSize = statusBarFrame.size;
CGFloat statusBarHeight = statusBarSize.height;

LViewController *aLViewController = [[LViewController alloc] initWithNibName:@"LViewController" bundle:[NSBundle mainBundle]];
self.viewController = aLViewController;
[aLViewController release];  

viewController.view.frame = CGRectMake(0.0f,
                                       statusBarHeight,
                                       window.bounds.size.width,
                                       window.bounds.size.height - statusBarHeight);

[window addSubview:[viewController view]];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...