0

2つのUIWebView間でスワップするアニメーションをプロジェクトで作成しました。私がiOS3.2で開発していたとき、アニメーションはすべて問題ありませんでした。しかし、私がiOS 4.2に移行したとき、突然すべてがうまくいかなくなりました。

    //LeftView Animation

    [UIView beginAnimations:@"leftPortrait" context:nil];
    [UIView setAnimationDelegate:self];
    [UIView setAnimationDuration:1.0f];
    [UIView setAnimationBeginsFromCurrentState:YES];
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:leftView cache:YES];
    [leftWebView setFrame:CGRectMake(0, 0, 384, 916)];
    [UIView commitAnimations];

    //RightView Animation
    [UIView beginAnimations:@"rightPortrait" context:nil];
    [UIView setAnimationDelegate:self];
    [UIView setAnimationDuration:1.0f]; 
    [UIView setAnimationBeginsFromCurrentState:YES];
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:rightView cache:YES];
    [rightWebView setFrame:CGRectMake(0, 0, 384, 916)];
    [UIView commitAnimations];

ありがとう!

4

1 に答える 1

1

ブロックベースのアニメーションを使用してみてください。

それらはよりクリーンでスムーズであり、現在の Apple のやり方でもあります。[UIView beginAnimations:context:] からブロックベースのアニメーションに切り替えることで、私のコードのアニメーションの問題も最近修正されました。

あなたの場合、単純なブロックベースのアニメーション バージョンは[UIView animateWithDuration:1.0f animations:^{[leftWebView setFrame:CGRectMake(0, 0, 384, 916)];}. -[UIView animateWithDuration:delay:options:animations:animations:completion:]他のオプションや、アニメーションが終了したときに実行するコードを設定するために使用することをお勧めします。

于 2010-12-19T17:30:04.273 に答える