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.