2013-03-18 40 views
0

在我的主視圖中,我在框架的底部添加了一個普通的UIToolbar,在景觀中它不會變小?這是因爲我不提供風景圖像還是缺少其他東西? UINavigationController中的所有其他工具欄都在橫向更改大小。UIToolbar在景觀中不會變小

繼承人如何我添加這一個屏幕。

toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, SCREEN_HEIGHT-64, SCREEN_WIDTH, 44)]; 
toolbar.translatesAutoresizingMaskIntoConstraints = YES; 
[self.view addSubview:toolbar]; 
[self setupToolbarItems]; 

setupToolbarItems只是爲條形按鈕創建一些圖像並設置它們。

回答

6

一個UIToolbar您添加自己不會幻化高度。如果您希望這樣做,則必須自行更改高度以響應應用方向的更改。

您觀察到的行爲,其中酒吧更改高度,是UINavigationController的一個功能;它會根據方向更改更改其導航欄及其工具欄的高度(如我的書中所述:http://www.apeth.com/iOSBook/ch25.html#SBbarMetrics)。但是這個UIToolbar不屬於UINavigationController,因此它的高度自動沒有任何變化。隨你便。

2

這是因爲您正在創建工具欄的框架,但未在視圖旋轉時再次設置它。您需要檢查何時屏幕旋轉使用[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(resize) name:UIDeviceOrientationDidChangeNotification object:nil];

然後在您的-(void)resize;方法中,您需要將工具欄的大小調整爲新窗口的大小。