在我的 UIView 中,我创建了一个名为targetView的 UIImageView,并在其中将其设置为一系列动画:
[UIView animateWithDuration:1.0
animations:^{self.targetView.center = CGPointMake(220,20);}
completion:^(BOOL finished){
//another animation will begin;
}];
我还创建了另一个名为shootView的 UIImageView ,它会在手指滑动时移动到目标方向。它的运动也被实现为动画。在其动画结束时,检测与 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
}];
现在有一个问题:intersect 命令只有在 targetView 已经到达当前动画的终点并且 shootView 恰好在那里时才能正常工作。当 targetView 在动画中间某处移动时,即使在视觉上很明显两帧相交,也无法检测到相交。