UIToolbar在景观方面不会变小

时间:2013-03-18 04:46:16

标签: objective-c uiviewcontroller rotation uitoolbar autorotate

在我的主视图中,我将一个普通的UIToolbar添加到框架的底部,在横向上它不会变小?这是因为我不提供风景图片还是我错过了其他的东西? UINavigationController中的所有其他工具栏都在横向上改变大小。

这是我如何将这个添加到屏幕上。

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

setupToolbarItems只为条形按钮创建一些图像并设置它们。

2 个答案:

答案 0 :(得分:6)

您自己添加的UIToolbar不会神奇地改变高度。如果您希望这样做,您必须自己更改高度以响应应用方向的变化。

您观察到的行为,即条形更改高度,是UINavigationController的一项功能;它会更改其导航栏及其工具栏的高度以响应方向更改(如我的书中所述:http://www.apeth.com/iOSBook/ch25.html#SBbarMetrics)。但是这个UIToolbar不属于UINavigationController,因此它的高度不会自动发生。这取决于你。

答案 1 :(得分:2)

这是因为您正在创建toolBar的框架,但在旋转视图时不再设置它。您需要使用[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(resize) name:UIDeviceOrientationDidChangeNotification object:nil];

检查屏幕旋转的时间

然后在-(void)resize;方法中,您需要将工具栏的大小调整为新窗口的大小。