1

我有代码

-(BOOL) shouldAutorotate
{
    return YES;
}

-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskAllButUpsideDown;
}

- (void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    [super willAnimateRotationToInterfaceOrientation: toInterfaceOrientation duration: duration];
    deviceOrientation = toInterfaceOrientation;
    if(deviceOrientation == UIInterfaceOrientationPortrait)
    {
        curPageSize = CGSizeMake([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height-STATUS_BAR_HEIGHT);      
    }
    else if(deviceOrientation == UIInterfaceOrientationLandscapeLeft || deviceOrientation == UIInterfaceOrientationLandscapeRight)
    {
        curPageSize = CGSizeMake([UIScreen mainScreen].bounds.size.height, [UIScreen mainScreen].bounds.size.width-STATUS_BAR_HEIGHT);
    }
    [self correctViews:curPageSize];
}

此方法在 ModalViewController 中定义...当我旋转设备时,程序不响应 willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation 持续时间:(NSTimeInterval)duration...

我应该怎么办?!

4

1 回答 1

1

尝试将您的代码调整为类似的内容...我已在许多应用程序中成功使用此方法。快乐编码!

-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    [super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
    if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft || toInterfaceOrientation == UIInterfaceOrientationLandscapeRight)
    {
        //Landscape
        self.ViewL.frame = CGRectMake(0, 0, 1024, 728);
        self.ViewL.hidden=NO;
        self.ViewP.hidden=YES;

    }
    else
    {
        //Portrait
        self.ViewP.frame = CGRectMake(0, 0, 768, 955);
        self.ViewP.hidden=NO;
        self.ViewL.hidden=YES;

    }
}
于 2012-12-03T21:47:33.127 回答