向右翻转UIView到UIView 2

时间:2012-09-17 08:41:06

标签: iphone uiview uiviewcontroller flip

我在同一个UIViews中有两个UIViewController VW1和VW2。 我正试图从VW1向VW2右转,并使用以下代码,我不知道如何以及在何处调用该方法?

-(void)FlipFromRight
{
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:1.0];
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:uiView2  cache:YES];

    [UIView commitAnimations];
}

以上代码对我不起作用。

2 个答案:

答案 0 :(得分:1)

你需要这样做:

if ([VW1 superview])
    {
        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration:1.0];  
        [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:aTableBGView cache:NO];

        [VW1 removeFromSuperview];
        [mainView addSubview:VW2];
        [mainView sendSubviewToBack:VW1];
    }
    else
    {
        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration:1.0];  
        [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:aTableBGView cache:NO];

        [[mainView viewWithTag:2001] removeFromSuperview]; // VW2's tag ID
            [mainView addSubview: VW1];
        [mainView sendSubviewToBack: VW2];
    }   
    [UIView commitAnimations];

答案 1 :(得分:0)

这里在导航栏或MainViewcontroller上添加一个类似名称“btnSwipe”的uIButton,之后只需给出按钮标题,例如“Left”。 之后用这个波纹管方法给出动作事件

-(IBAction)FlipFromRight:(id)sender
{
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:1.0];
    if ([btnSwipe.titleLabel.text isEqualToString:@"Left"])
   {
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:uiView1  cache:YES];
[btnDraw setTitle:@"Right" forState:UIControlStateNormal];
   }
else{
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:uiView2  cache:YES];
[btnDraw setTitle:@"Left" forState:UIControlStateNormal];
}

    [UIView commitAnimations];
}

这里只是将IBA从xib提供给btnSwipe,它将起作用

我希望这对你有用..

:)