UIToolbar 在横向上不会变小

Posted

技术标签:

【中文标题】UIToolbar 在横向上不会变小【英文标题】:UIToolbar doesn't get smaller in landscape 【发布时间】:2013-03-18 04:46:16 【问题描述】:

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

这就是我如何将这个添加到屏幕上的方法。

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

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

【问题讨论】:

【参考方案1】:

您自己添加的 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; 方法中,您需要将工具栏的大小调整为新窗口的大小。

【讨论】:

以上是关于UIToolbar 在横向上不会变小的主要内容,如果未能解决你的问题,请参考以下文章

Swift - UIPickerView 的带有完成按钮的 UIToolbar 在横向上消失

阻止 UIToolbar 在横向方向消失 - iPad

旋转到横向时拉伸 UIToolbar 背景图像

UIToolbar 内的 UISegmentedControl 的横向高度确实错误

iOS 11 UIBarButtonItem 图像没有调整大小

调整 UITextField 的宽度以横向填充工具栏