1

いつもランドスケープモードのアプリを作ろうとしています。私はいつものことをしました:plistはUIInterfaceOrientation / UIInterfaceOrientationLandscapeRightを追加し、ビューの上部に小さな矢印を付けてInterfaceBuilderのXIBを回転させました。

my code for launching:
- (void)applicationDidFinishLaunching:(UIApplication *)application {    
        [[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscapeRight];
    FlipViewController *flip = [[FlipViewController alloc] initWithNibName:@"FlipViewController" bundle:nil];
    [window addSubview:flip.view];
    [window makeKeyAndVisible];
}

しかし、「UIViewAnimationTransitionFlipFromLeft」を実行しようとすると、ページが右から左ではなく上から下に反転します。:-/

これは、ビューを反転するために使用するコードです。

[UIView beginAnimations:@"View Flip" context:nil];
    [UIView setAnimationDuration:1.25];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];

    UIViewController *coming = nil;
    UIViewController *going = nil;
    UIViewAnimationTransition transition;

    if (self.blueViewController.view.superview == nil) 
    {   
        coming = blueViewController;
        going = yellowViewController;
        transition = UIViewAnimationTransitionFlipFromLeft;
    }
    else
    {
        coming = yellowViewController;
        going = blueViewController;
        transition = UIViewAnimationTransitionFlipFromRight;
    }

    [UIView setAnimationTransition: transition forView:self.view cache:YES];
    [coming viewWillAppear:YES];
    [going viewWillDisappear:YES];
    [going.view removeFromSuperview];
    [self.view insertSubview: coming.view atIndex:0];
    [going viewDidDisappear:YES];
    [coming viewDidAppear:YES];

    [UIView commitAnimations];

「窓」は、風景モードになっているという事実を見逃しているようです。うーん。誰かが私の間違いを見つけることができますか?

4

1 に答える 1

2

文書化された方法では不可能です。

CATransitionを使用する必要があります。(CATransition自体は文書化されていますが、フリップ遷移は文書化されていません。)

フリップトランジションを使用するには、トランジションtypeを「oglFlip」に設定subtypeし、fromLeft / Top / Right/Bottomに設定します。

于 2010-02-28T14:24:37.900 に答える