在PortraitUpsideDown中启动应用程序会产生翻译问题

时间:2011-03-14 09:12:16

标签: iphone translation orientation autorotate portrait

我的视图中有几张图片。在旋转时,我的图像通过CGAffineTransformTranslate& amp;旋转。

然而,当我在PortraitUpsidedown中启动时,会发生一个我在

中定义的翻译

“ - (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {”method。

此翻译只需在使用设备进行方向更改时进行。如何确保在启动时不会发生此转换?

编辑:

在实施viewWillAppear方法的提示后仍然遇到问题。

以下是我项目的一些代码。

-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {

    [super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];

    if(toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
       toInterfaceOrientation == UIInterfaceOrientationLandscapeRight) {

        image1.transform = CGAffineTransformTranslate( image1.transform, -65.0, 255.0);
        image2.transform = CGAffineTransformTranslate( image2.transform, -65.0, 255.0);
    }
    else {

        image1.transform = CGAffineTransformIdentity;
        image2.transform = CGAffineTransformIdentity;
    }

}

-(void) viewWillAppear:(BOOL)isRotated{

    isRotated = FALSE;
}

但是如何实现我定义的代码片段

isRotated = TRUE;

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

使用shouldAutorotateToInterfaceOrientation委托方法:

 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Overriden to allow any orientation.
    return ((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (interfaceOrientation == UIInterfaceOrientationLandscapeRight));
}

设置BOOL变量。当界面是我们需要使用的YES&时,请设为CGAffineTransformTranslate旋转,或从那里调用方法来翻译:

像:

if (interfaceOrientation == UIInterfaceOrientationLandscapeRight) 
    // do something