In meinem UIView, habe ich eine UIImageView erstellt Target genannt, wo ich es in eine Reihe von Animationen gesetzt haben:Wie erkennt man den Schnittpunkt zweier Bilder während der Animation?
[UIView animateWithDuration:1.0
animations:^{self.targetView.center = CGPointMake(220,20);}
completion:^(BOOL finished){
//another animation will begin;
}];
Ich habe auch eine andere UIImageView genannt shootView, die auf die Zielrichtung bewegt auf einen Finger wischen. Seine Bewegung wird auch als Animation implementiert. Am Ende seiner Animation, erfassen die intersect mit dem Target:
[UIView animateWithDuration:1.0
animations:^{
self.shootView.center = CGPointMake(destX, destY);}
completion:^(BOOL finished){
if (CGRectIntersectsRect(self.targetView.frame, self.shootView.frame)) {
//do something
}];
Jetzt gibt es ein Problem: Der Befehl Schnitt nur funktioniert, wenn die Target den Endpunkt der aktuellen Animation erreicht hat und die shootView passiert da sein. Während sich das targetView irgendwo in der Mitte einer Animation bewegt, kann kein Schnittpunkt erkannt werden, auch wenn visuell sehr offensichtlich ist, dass sich die beiden Frames überschneiden.