停止UIToolbar从横向方向消失 - iPad

时间:2011-03-09 07:09:59

标签: objective-c ipad orientation uisplitviewcontroller uitoolbar

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

3 个答案:

答案 0 :(得分:14)

我只是将UIToolBar拖到我的视图上并将其停靠在窗口顶部时遇到了同样的问题。它出现在风景但不是肖像。 Interface Builder - 至少是Xcode 4中嵌入的一个 - 似乎没有使用调整大小掩码做正确的事情。

虽然Kshitiz的上述答案可行,但它有一些缺陷。如编码,它不支持所有四个方向。更重要的是,它不是独立于分辨率的。

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

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

答案 1 :(得分:0)

在你的视图控制器重置视图框架的这个函数中

- (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;
}

和您的工具栏框架也是如此 祝你好运

答案 2 :(得分:0)

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

let statTypePicker = UIPickerView()

然后添加

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