viewdidload上的iOS5方向无法正确启动

时间:2012-06-14 11:25:00

标签: ios5 uiinterfaceorientation custom-view

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

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


switch (interfaceOrientation) 
            {
                case UIDeviceOrientationPortrait:
                {
                    // Size 3 views using self.view.bounds.size.height
                    // and self.view.bounds.size.width
                    break;
                }
                case UIDeviceOrientationPortraitUpsideDown:
                {
                    // Size 3 views using self.view.bounds.size.height
                    // and self.view.bounds.size.width
                    break;
                }
                case UIDeviceOrientationLandscapeLeft:
                {
                    // Size 3 views using self.view.bounds.size.height
                    // and self.view.bounds.size.width
                    break;
                }
                case UIDeviceOrientationLandscapeRight:
                {
                    // Size 3 views using self.view.bounds.size.height
                    // and self.view.bounds.size.width
                    break;
                }

                default:
                    break;
            }

我在shouldAutorotateToInterfaceOrientation上调用该函数:


- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    [self setAspect:aspect];
    return YES;
}

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

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

1 个答案:

答案 0 :(得分:1)

我今天遇到了同样的问题。

我最后不得不添加:self.view.autoresizesSubviews = YES;到我的viewDidLoad方法,即使我在Interface Builder中检查了自动调整大小。

-(void)viewDidLoad
{
    [super viewDidLoad];

    self.view.autoresizesSubviews = YES;
}