Это правильно, как я вращаю UINavigationBar? - PullRequest
0 голосов
/ 09 ноября 2010

У меня есть простой UIViewController, где в viewDidLoad у меня есть:

_navigationBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
[self.view addSubview:_navigationBar];

_toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 416, 320, 44)];   
[self.view addSubview:_toolbar];

В didRotateFromInterfaceOrientation я положил:

_navigationBar.frame = CGRectMake(0, 0, self.view.bounds.size.width, 44);

И это работает, но мне не очень нравитсяэффект, который он сделал.Есть идеи?Спасибо

1 Ответ

0 голосов
/ 09 ноября 2010

Вы должны установить соответствующую autoresizingMask для каждого вида при его инициализации, а не изменять его фрейм / границы / положение вручную, когда вид вращается.При этом при ротации вида автоматически изменяются (корректируются) его подвиды.

, например:

[navigationBar setAutoResizingMask:UIViewAutoresizingFlexibleWidth];

, или вы можете комбинировать различные маски UIViewAutoresizing , используя|оператор.Это свойство делает то же самое, что IB при настройке пружин в каждом представлении (в окне инспектора)

...