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 内的 UISegmentedControl 的横向高度确实错误