【问题标题】:UIToolbar doesn't get smaller in landscapeUIToolbar 在横向上不会变小
【发布时间】: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 只是为栏按钮创建一些图像并设置它们。

【问题讨论】:

    标签: objective-c uiviewcontroller rotation uitoolbar autorotate


    【解决方案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; 方法中,您需要将工具栏的大小调整为新窗口的大小。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-16
        • 2011-08-25
        • 1970-01-01
        相关资源
        最近更新 更多