0

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

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

    [UIView commitAnimations];
}

上面的代码对我不起作用。

4

2 回答 2

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];
于 2012-09-17T08:53:06.763 回答
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];
}

这里只需将 IBAction 从 xib 提供给 btnSwipe 即可

我希望这对你有用..

:)

于 2012-09-17T09:22:37.063 回答