shouldAutorotateToInterfaceOrientation UIToolbar в ландшафтном режиме отключен на один пиксель

Я добавляю панель инструментов на мой вид, например:

self.myToolbar = [UIToolbar new];
    self.myToolbar.barStyle = UIBarStyleDefault;
    self.myToolbar.tintColor = [UIColor BAR_COLOR];
    self.myToolbar.frame = CGRectMake(0, self.view.bounds.size.height-44, 320, 44);
    self.myToolbar.autoresizingMask = (UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleTopMargin|UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight);
[self.view addSubview:myToolbar];

В конструкторе интерфейса я установил фиксированный верхний и левый поля для представления. Также в смоделированных метриках я установил строку состояния на черный, верхнюю панель на панель навигации и нижнюю панель на ноль.

Это прекрасно работает в портретном режиме. И выглядит так:

Теперь, когда я поворачиваюсь в ландшафтный режим, размер панели инструментов изменяется, и все, НО, это на один пиксель ниже:

Что может быть причиной этого?

1 ответ

Решение

Следующий код работает:

self.myToolbar = [UIToolbar new];
self.myToolbar.barStyle = UIBarStyleDefault;
self.myToolbar.tintColor = [UIColor BAR_COLOR];
CGRect screenRect = [[UIScreen mainScreen] applicationFrame]; //get the rect of the screen 
self.myToolbar.frame = CGRectMake(screenRect.origin.x, screenRect.size.height-44, screenRect.size.width, 44);
self.myToolbar.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self.view addSubview:myToolbar];

РЕДАКТИРОВАТЬ

На самом деле это ошибка, возникающая на симуляторе iOS5.

Другие вопросы по тегам