UIView
アニメーションを使用して、画面全体にボタンを移動しています。それが移動している間、私はNSTimer
はこのようになります方法UIViewアニメーションを使用しているときのUIButton.frame
checkForCollision
実行されている:0.05の間隔で
for(UIButton* b in squares)
if(CGRectIntersectsRect(playerSquare.frame, b.frame)) {
[self showEndMenu];
break;
}
を。ボタンが別のパスに移動するたびに、そのメソッドに通知することができます。問題は、表示されるのは、UIButton b
のフレームをチェックすると、ボタンが移動しているフレームのみが表示されることです。
私はボタンが次のようにアニメーションされている必要があり:
[UIView beginAnimations:@"" context:nil];
[UIView setAnimationDuration:1.3];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
view.center = destPoint;
[UIView commitAnimations];
ので、destPointはCGRect
playerSquare.frame
交差する場合、[self showEndMenu]
が呼び出されます。しかし、ボタンがアニメーションの途中であるフレーム/位置がplayerSquare
と交差する場合、[self showEndMenu]
は呼び出されません。私はこれを解決する方法を知らない。必要に応じてより多くのコードを提供することができます。ありがとうございました!
アニメーション中に[UIViewアニメーション決定センター]の複製が可能です(http://stackoverflow.com/questions/6545545/uiview-animation-determine-center-during-animation) – jrturton