iPhone多视图旋转地狱

时间:2011-11-01 17:13:04

标签: iphone objective-c ios uiview autosize

这是我在这里的第一篇文章,我对iPhone开发很新,所以请耐心等待。

我有一个应用程序,它有一些视图控制器,每个视图控制器都有一些它控制的nib文件,有些笔尖有多个视图。整个应用程序中都有一个工具栏,由根视图控制器控制。

经过大量的搜索,我在每个屏幕上都有旋转工作,除了一个。我没有让他们以正确的方向加载,但我想这是一个不同的问题。

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

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

抱歉,我必须删除我放在这里的图片,显示我的意思,才能发布。

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

例如,加载我命名为shiftStart的视图,我使用:

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

现在这是我的问题。我有一个有3个视图的nib文件,视图是首先加载的主视图,rotaStart,当按下第一个视图上的按钮时加载为子视图,而shiftStart,当第一个按钮上的按钮加载时作为子视图加载视图被按下了。 rotaStart和shiftStart几乎相同,有标题,文本块,是按钮和否按钮。唯一的区别是框中的文本,如果单击是或否按钮,则加载哪个视图。

我在Xcode中为标题,文本块和按钮选择了相同的调整大小和边距选项,据我所知,加载它们的代码是相同的(参见下面的代码),但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不旋转,当手机变成风景时呢?

对不起,这个解释有点长啰嗦。我不确定如何解释它。

由于

1 个答案:

答案 0 :(得分:0)

对于其他任何看过这个问题的人来说,遇到类似的问题,@longball为我解决了这个问题。不知何故,我设法在基本视图的顶部添加第二个视图,完成标签&纽扣。删除额外视图可以解决问题。