UIView изменение размера - PullRequest
       9

UIView изменение размера

1 голос
/ 26 апреля 2011

У меня есть представление, которое я создаю в представлении load следующим образом:

- (void)loadView {
UIView *mainView = [[UIView alloc] initWithFrame:[UIApplication sharedApplication].keyWindow.bounds];
self.view = mainView;
[mainView release];

}

Итак, если я распечатываю вид, я получаю результат: > ОК, это то, что я хотел, 767x1024

Проблема в том, если я назову этот метод:

[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationSlide];

и представить modalViewController, а затем закрыть его, на моем предыдущем контроллере представления, распечатав метод viewDidAppear и viewWillAppear. Я получил это:

viewWillAppear:

[<UIView: 0x4e946a0; frame = (0 0; 768 1024); layer = <CALayer: 0x4e946d0>>]

viewDidAppear:

[<UIView: 0x4e946a0; frame = (0 0; 768 1004); layer = <CALayer: 0x4e946d0>>]

Почему размер вида меняется на 20? Я знаю, что это как-то связано со строкой состояния, но не могу понять.

Спасибо.

1 Ответ

1 голос
/ 26 апреля 2011

Вы правы.Размер строки состояния по умолчанию составляет 20 пикселей в высоту.UIViewController автоматически настраивает размер дочернего представления при отображении строки состояния.Согласно документации Apple, «когда контроллер представления отображается на экране, его корневое представление обычно изменяется в соответствии с доступным пространством, которое может варьироваться в зависимости от текущей ориентации окна и наличия других элементов интерфейса, таких как строка состояния».- http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...