如果ViewController嵌入在TabBarController中,则某些内容不可插入

时间:2013-11-19 11:17:04

标签: ios iphone objective-c uitabbarcontroller orientation

我有一个测试项目并创建了嵌入TabBarController的ViewController。我已经将'UISearchBar'和'UISegmentedControl'置于约束状态,并且在纵向模式下它们是可点击的。但是当我旋转到横向模式(iPhone)时,只有320像素的searchBar和segmentedControl是可点击的,其余部分则不是。这在下图中有更好的解释。

为什么会这样?

如何在横向模式下“拉伸”可点击区域?

正如您所看到的,约束工作正常,组件的大小正确。

Figure 1 Figure 2

2 个答案:

答案 0 :(得分:0)

你的一些约束工作正常,但其他人很可能没有。如果分段控件在横向上只是部分可点击,则应检查其超视图的帧大小。

在横向模式下,分段控件部分位于超视图框架之外。如果超级视图框架正常,请进一步查看超级视图层次结构。

要解决此问题,请尝试以下操作:

  • 选择IB中的所有组件(搜索栏+分段控件+日期选择器)
  • 打开菜单'编辑' - > “解决自动布局问题” - > “重置为建议的限制”

答案 1 :(得分:0)

我刚刚将以下代码放在我的TabBarViewController类中。

- (void)viewDidLayoutSubviews
{
    // fix for iOS7 bug in UITabBarController
    self.selectedViewController.view.superview.frame = self.view.bounds;
}