0

我的视图中有几张图像。在旋转时,我的图像通过 CGAffineTransformTranslate & Rotate 正确放置。

但是,当我在 PortraitUpsidedown 中启动时,会发生我在

"-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation 持续时间:(NSTimeInterval)duration { " 方法。

这种平移只需要在设备的方向改变时发生。如何确保在 Launch 上不会发生这种翻译?

编辑:

在您提示实施 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;

谢谢你的帮助 !

4

1 回答 1

0

使用shouldAutorotateToInterfaceOrientation委托方法:

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

设置一个BOOL变量。当YES接口是我们需要使用CGAffineTransformTranslate& 旋转的时候,或者从那里调用方法来翻译:

像:

if (interfaceOrientation == UIInterfaceOrientationLandscapeRight) 
    // do something
于 2011-03-14T10:26:19.183 回答