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

Posted

技术标签:

【中文标题】阻止 UIToolbar 在横向方向消失 - iPad【英文标题】:Stop UIToolbar from Disappearing in Landscape Orientation - iPad 【发布时间】:2011-03-09 07:09:58 【问题描述】:

不知道为什么会发生这种情况或如何阻止它,我的UIToolBar 详细信息viewcontroller 仅在纵向视图中可见。我希望它在所有方向都可见。我怎么做?谢谢。

【问题讨论】:

【参考方案1】:

我只是将 UIToolBar 拖到我的视图并将其停靠在窗口顶部时遇到了同样的问题。它出现在横向而不是纵向。 Interface Builder - 至少是嵌入在 Xcode 4 中的那个 - 似乎没有对调整大小掩码做正确的事情。

虽然上面 Kshitiz 的答案可行,但它有几个缺陷。按照编码,它不支持所有四个方向。更重要的是,它与分辨率无关。

enamrik 的评论中简要描述了一个更好的解决方案,因此应该归功于他/她。步骤如下:

    在 Interface Builder 中选择工具栏。 打开尺寸检查器。 在“自动调整大小”框中,选择正方形外部的左侧、右侧和顶部“工字梁”。这样可以在调整视图大小时使工具栏的位置相对于视图的侧面保持固定。 在 Autosizing 方块内,选择两端带有箭头的水平线。这会导致工具栏的大小与父视图同步更改。

【讨论】:

感谢您的解决方案。它解决了我的问题,工具栏也进入了横向模式......但我的问题是当我在工具栏的右上角添加一个 UIBarButtonItem 时,我已经在纵向模式下添加了它。当我进入横向模式时,UIBarButtonItem 项将出现在工具栏的中间。【参考方案2】:

在您的视图控制器的此功能中重置视图框架兄弟

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
    // Override to allow orientations other than the default portrait orientation.
    if (interfaceOrientation==UIInterfaceOrientationLandscapeLeft || interfaceOrientation==UIInterfaceOrientationLandscapeRight) 
        self.view.frame = CGRectMake(0, 0, 703,768);    

         else 
        self.view.frame = CGRectMake(0, 0, 768, 1024);
        


    return YES;

还有你的工具栏框架 祝你好运

【讨论】:

这看起来像个黑客;一个解决方案,直到真正的解决方案出现。我认为 UISplitViewController 上必须有一个属性来阻止它隐藏工具栏,但我仍然没有找到。这是令人沮丧的。不过,谢谢,您的解决方案很有魅力。 不管怎样,工作已经完成了,前段时间我也遇到了同样的问题,我找到了这个 只是想提供更新。为了阻止工具栏消失,我需要做的就是在界面构建器中弄乱 autoResizeMask。设置宽度和边距后左右(通过单击浅红色阵列使其变为深红色),工具栏在旋转时不再消失。这是有道理的,因为当父视图发生变化时,我需要告诉工具栏将如何调整其大小并相对于其父视图重新定位。【参考方案3】:

当我以编程方式添加 UIPickerView 并为 PickerView 添加 UIToolBar 时遇到了同样的问题。只需为 UIPickerView 添加[.flexibleWidth,.flexibleHeight]。例如:-

let statTypePicker = UIPickerView()

然后添加

 self.statTypePicker.autoresizingMask = [.flexibleWidth,.flexibleHeight]

【讨论】:

以上是关于阻止 UIToolbar 在横向方向消失 - iPad的主要内容,如果未能解决你的问题,请参考以下文章

主视图控制器在点击项目并快速将方向从纵向更改为横向后消失

UIKeyBoard 在方向更改为横向时调整大小

即使我阻止横向旋转,屏幕也在旋转

UIToolbar 在横向上不会变小

在横向上消失的 UICollectionViewCells

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