В моей UIView, я создал UIImageView называется targetView, где я поставил его в ряд анимаций:Как обнаружить пересечение двух кадров изображения во время анимации?
[UIView animateWithDuration:1.0
animations:^{self.targetView.center = CGPointMake(220,20);}
completion:^(BOOL finished){
//another animation will begin;
}];
Я также создал еще один UIImageView называется shootView, который будет двигаться в направлении цели по пальцу. Его движение также реализовано как анимация. В конце своей анимации, обнаружить пересекаться с targetView:
[UIView animateWithDuration:1.0
animations:^{
self.shootView.center = CGPointMake(destX, destY);}
completion:^(BOOL finished){
if (CGRectIntersectsRect(self.targetView.frame, self.shootView.frame)) {
//do something
}];
В настоящее время существует проблема: команда пересекаться только отлично работает, если targetView достиг конечной точки текущей анимации и shootView случается будь там. Хотя targetView находится в движении где-то посередине анимации, пересечение не может быть обнаружено, даже если визуально очень очевидно, что два кадра пересекаются.