Actualice el marco de la vista mientras se está animando
Estoy haciendo una animación como esta:
CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
animation.duration = 100.0;
animation.path = self.animationPath.CGPath;
[view.layer addAnimation:animation forKey:@"animation"];
Funciona bien, sin embargo, esto ahora falla al intentar detectar toques en el objeto que se mueve por la pantalla:
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
{
for (UIView* subview in self.subviews ) {
if ( [subview hitTest:[self convertPoint:point toView:subview] withEvent:event] != nil ) {
[self handleTap];
return YES;
}
}
return NO;
}
Falla porque el marco de la vista ya no es el mismo que su posición aparente en la pantalla cuando se está animando. Como puedo conseguirpointInside
trabajar con una vista que se está animando?