Atualizar o quadro da vista enquanto estiver sendo animado
Estou fazendo uma animação como esta:
CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
animation.duration = 100.0;
animation.path = self.animationPath.CGPath;
[view.layer addAnimation:animation forKey:@"animation"];
Funciona bem, no entanto, isso agora falha ao tentar detectar toques no objeto que está se movendo pela tela:
- (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;
}
Ele falha porque o quadro da vista não é mais o mesmo que sua posição aparente na tela quando está sendo animado. Como posso obterpointInside
trabalhar com uma exibição que está sendo animada?