iOS 7在标签栏中旋转视图时,视图右侧不可点击

时间:2013-09-20 18:39:59

标签: ios rotation uitabbarcontroller ios7

我有一个非常简单的应用程序,包含一个视图。一切正常,应用程序旋转,屏幕右侧的按钮可点击。我正在使用iOS 7和Xcode 5。

如果我进入故事板并选择视图,那么请执行编辑器>嵌入>标签栏控制器,现在当应用程序从纵向旋转到横向时,应用程序的右侧无法点击。它似乎距左侧正好是768像素,它停止工作,所以它让我觉得应用程序中有一些没有旋转的东西。可能有什么不对?

这只是一个基本的单视图向导应用程序,我在其上放置了一些UI元素进行测试。唯一让它停止工作的是嵌入标签栏。

以下是整个项目:https://github.com/tomkincaid/rotate

更新:我最初在iPhone和iPad上使用了相同的iPhone故事板,并认为这可能是问题所在。但是,我创建了一个新的iPad故事板,它有同样的问题。

另一个更新:如果我将视图放在导航控制器中,它可以工作。所以View工作,Tab> Nav> View工作,但Tab> View不起作用。

enter image description here

5 个答案:

答案 0 :(得分:15)

我遇到了同样的问题。将以下代码放在我的视图控制器的viewDidLoad中修复它:

self.view.autoresizesSubviews = YES;
self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

答案 1 :(得分:4)

将以下代码放在TabBarViewController类中。

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

答案 2 :(得分:2)

要详细说明this answer,您可以通过编辑故事板的源代码来获得相同的结果。

更换

<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>

<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>

用于导致问题的视图控制器的视图。

答案 3 :(得分:1)

在左侧的视图控制器列表中,导航到受影响的视图/视图控制器,将视图拖动到第一个响应者的下方,以便将其取消关联到视图控制器的视图。

然后转到右侧的布局选项卡,选择所有4个锚点和两组调整大小箭头(水平+垂直)。

然后将视图拖回原来的位置(就在视图控制器下方)。

答案 4 :(得分:0)

我也遇到了同样的问题,并通过在app delegate的didFinishLaunchingWithOptions方法中添加以下代码来解决它。

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

window是主界面.xib文件的对象。