2013-03-18 17 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;方法中,您需要将工具栏的大小调整为新窗口的大小。