不响应willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)持续时间

时间:2012-11-21 07:47:14

标签: ios6

我有代码

-(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 duration:(NSTimeInterval)duration ...

我该怎么办?!

1 个答案:

答案 0 :(得分: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;

    }
}