我有一个非常简单的应用程序,包含一个视图。一切正常,应用程序旋转,屏幕右侧的按钮可点击。我正在使用iOS 7和Xcode 5。
如果我进入故事板并选择视图,那么请执行编辑器>嵌入>标签栏控制器,现在当应用程序从纵向旋转到横向时,应用程序的右侧无法点击。它似乎距左侧正好是768像素,它停止工作,所以它让我觉得应用程序中有一些没有旋转的东西。可能有什么不对?
这只是一个基本的单视图向导应用程序,我在其上放置了一些UI元素进行测试。唯一让它停止工作的是嵌入标签栏。
以下是整个项目:https://github.com/tomkincaid/rotate
更新:我最初在iPhone和iPad上使用了相同的iPhone故事板,并认为这可能是问题所在。但是,我创建了一个新的iPad故事板,它有同样的问题。
另一个更新:如果我将视图放在导航控制器中,它可以工作。所以View工作,Tab> Nav> View工作,但Tab> View不起作用。
答案 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文件的对象。