0

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

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

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

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

4

2 回答 2

6

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

您观察到的行为,即条形改变高度,是 UINavigationController 的一个特性;它会根据方向变化改变其导航栏和工具栏的高度(如我的书中所述:http ://www.aeth.com/iOSBook/ch25.html#SBbarMetrics )。但是这个 UIToolbar 不属于 UINavigationController 所以它的高度不会自动发生。由你决定。

于 2013-03-18T04:49:47.887 回答
2

这是因为您正在创建工具栏的框架,但在旋转视图时没有再次设置它。您需要检查屏幕何时旋转使用[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(resize) name:UIDeviceOrientationDidChangeNotification object:nil];

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

于 2013-03-18T04:51:03.173 回答