2

我正在 iOS5 ipad 上编写应用程序。

当自定义视图完成加载时,在 viewDidLoad 上,我调用了一个函数,该函数为某些编程视图设置了一个方面,例如:

开关(界面方向)
            {
                案例 UIDeviceOrientationPortrait:
                {
                    // 使用 self.view.bounds.size.height 大小 3 个视图
                    // 和 self.view.bounds.size.width
                    休息;
                }
                案例 UIDeviceOrientationPortraitUpsideDown:
                {
                    // 使用 self.view.bounds.size.height 大小 3 个视图
                    // 和 self.view.bounds.size.width
                    休息;
                }
                案例 UIDeviceOrientationLandscapeLeft:
                {
                    // 使用 self.view.bounds.size.height 大小 3 个视图
                    // 和 self.view.bounds.size.width
                    休息;
                }
                案例 UIDeviceOrientationLandscapeRight:
                {
                    // 使用 self.view.bounds.size.height 大小 3 个视图
                    // 和 self.view.bounds.size.width
                    休息;
                }

                默认:
                    休息;
            }

我在 shouldAutorotateToInterfaceOrientation 上调用该函数:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    [自我设置方面:方面];
    返回是;
}

当我旋转应用程序时,将视图放在正确的位置,但是,当启动应用程序时,如果我有横向的 ipad,它不能正常工作。它需要肖像的大小。如果我旋转设备,问题就解决了,但我不喜欢我的应用程序中的这个问题。

我不知道为什么会发生这种情况,我已经读过 viewdidload 上的调用方面为时过早。我必须在哪里称它为 setAspect 函数?

4

1 回答 1

1

我今天也有同样的问题。

我最终不得不添加: self.view.autoresizesSubviews = YES; 到我的 viewDidLoad 方法,即使我在 Interface Builder 中检查了 autoresize。

-(void)viewDidLoad
{
    [super viewDidLoad];

    self.view.autoresizesSubviews = YES;
}
于 2012-07-04T00:23:23.043 回答