3

このコードの何が問題なのかわかりません。

[UIView animateWithDuration:10.0f delay:0.0f options:UIViewAnimationOptionTransitionNone animations:^{
    CGAffineTransform transform = CGAffineTransformMakeScale(0.1, 0.1);
    self.transform = transform;
}
completion:^(BOOL finished) {
    if (finished) { 
        NSLog(@"Animation finished");
        [[NSNotificationCenter defaultCenter] postNotificationOnMainThreadName:@"NSShowHomeScreen" object:nil ];
    }
}];

10秒の長さでも、アニメーションが始まるとすぐに「アニメーションが終了しました」というコンソールメッセージが表示されます。

最初の UIView を縮小/拡大縮小したいのですが、その後、別の UIView を表示したいと思います。しかし、今では縮小が終了するかなり前に 2 番目の UIView が表示されます。

どんな助けでも大歓迎です。

ありがとう

4

2 に答える 2

1

すみません、私の悪かったです。問題を引き起こしていた UIPinchGestureRecognizer も使用していました。とにかく、あなたの迅速な返信に感謝します..

ありがとう

于 2012-07-14T09:22:36.290 に答える
0

UIView のドキュメントでは、transform プロパティについて次のように述べています。

このプロパティへの変更はアニメーション化できます。アニメーション ブロックを開始するには beginAnimations:context: クラス メソッドを使用し、アニメーション ブロックを終了するには commitAnimations クラス メソッドを使用します。デフォルトは、中心値 (または変更された場合はアンカー ポイント) です。

そのため、ブロック メソッドを使用してアニメーション化することはできず、アニメーションの周りに begin および commit ラッパーを使用する必要があります。

于 2012-07-14T09:19:04.897 に答える