0

UIViewsVW1とVW2の2台を同じ車内に持ってい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

ここで、navigationbar または MainViewcontroller に「btnSwipe」という名前の uIButton を 1 つ追加し、その後、「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 に答える