iPhone 多 View 旋转 hell

标签 iphone objective-c ios uiview autosize

这是我在这里的第一篇文章,我对 iPhone 开发还很陌生,所以请多多包涵。

我有一个应用程序,它有几个 View Controller ,每个 View Controller 都有几个它控制的 nib 文件,一些 nib 有多个 View 。整个应用程序都有一个工具栏,由 Root View Controller 控制。

经过大量搜索,我在每个屏幕上都可以进行旋转,只有一个屏幕除外。我没有让它们以正确的方向加载,但我想这是另一个问题。

在我的具有多个 View 的 Nib 中,我只能在原始主视图上选择自动调整大小选项。在我使用 insertSubview 加载的已添加 View 上,我可以选择固定边距选项,但不能选择宽度和高度大小调整选项。我正在使用 Xcode 4。

我的第一个问题是,为什么我无法在其他 View 上选择调整大小选项?

抱歉,我不得不删除我放在这里的图片,以显示我的意思,以便能够发布。

无论如何,这不是我的主要问题,出于好奇,我只是想知道为什么我不能选择调整大小选项。我在代码中找到了解决方法。在加载 subview 的函数中,我添加了 [viewName setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight];

例如,要加载我命名为 shiftStart 的 View ,我使用:

- (IBAction)loadShiftStart:(id)sender {
    [self clearView];
    [self.view insertSubview:shiftStart atIndex:0];
    [shiftStart setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight];
}

现在我的问题来了。我有一个有 3 个 View 的 nib 文件,view 是首先加载的主视图,rotaStart,当按下第一个 View 上的按钮时作为 subview 加载,shiftStart,当第一个按钮上的按钮加载时作为 subview 加载 View 被按下。 rotaStart 和 shiftStart 几乎相同,有一个标题、一个文本 block 、一个是按钮和一个否按钮。唯一的区别是框中的文本,以及如果您单击"is"或“否”按钮将加载哪个 View 。

我在 Xcode 中为标题、文本 block 和按钮选择了所有相同的调整大小和边距选项,据我所知,加载它们的代码是相同的(见下面的代码),但 shiftStart 旋转正确而 rotaStart 则没有。

- (IBAction)loadRotaStart:(id)sender {
    [self clearView];
    [self.view insertSubview:rotaStart atIndex:0];
    [rotaStart setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight];
}

- (IBAction)loadShiftStart:(id)sender {
    [self clearView];
    [self.view insertSubview:shiftStart atIndex:0];
    [shiftStart setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight];
}

谁能告诉我为什么 rotaStart 不旋转,当手机切换到横向时?

抱歉,这个解释有点啰嗦。我不确定还能如何解释。

谢谢

最佳答案

对于其他有类似问题的人,@longball为我解决了。不知何故,我设法在基本 View 的顶部添加了第二个 View ,并带有标签和按钮。删除额外的 View 解决了这个问题。

关于iPhone 多 View 旋转 hell ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7970160/

相关文章:

iphone - CoreData是否自动实现内存警告?

objective-c - 在 XCode 中更改 NSImage - 这行代码不起作用

ios - 如何以编程方式在 iOS 中单击 facebook loginView?

ios - 从 iOS 应用程序运行 Haxe – hxRunLibrary() 错误

iphone - 从自定义 iOS 应用程序启动 msoffice 文档查看器

ios - UIButton 背景图像的大小与自动布局不正确?

iphone - 为什么像 NSString 这样的属性在没有内存分配的情况下工作,而 UITextField 的属性不工作,除非我为它分配空间......?

ios - iPhone - 内存泄漏 - NSData dataWithContentsOfUrl 和 UIWebView

ios - 有没有办法使用 gmail api 安排邮件?

ios - 如何在用户更改时更新设备语言