2012-02-25 3 views
0

я добавить панель инструментов на мой взгляд, как это: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]; 

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

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

enter image description here

Теперь, когда я поворачиваю к landscapemode панель получает изменяет размер и все, но это от днище на один пиксель, как это:

enter image description here

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

ответ

3

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

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]; 

EDIT

Это на самом деле ошибка происходящий на тренажере iOS5.

+0

Это решение проблемы, но вызывает еще один! Теперь панель инструментов находится на высоте 44, которую я не хочу, потому что она должна изменяться как панель навигации. – bllubbor

+1

Извините, я догадался, что это то, что вы искали. На самом деле, мне интересно, не получается ли это из симулятора. Я попробовал ваш код с симулятором iOS5, и я заметил вашу проблему. Но когда я попытался с iOS4 или iOS4.3, проблем не было ... – Franck

+1

вы абсолютно правы, это всего лишь ошибка в симуляторе, он работает так же, как я хотел его по телефону. Глупо, что я не пытаюсь по телефону. Большое спасибо. Пожалуйста, отредактируйте свой ответ для других, у кого есть эта проблема, и я буду отмечать это как правильный ответ. – bllubbor