Update den Frame der Ansicht, während sie animiert wird
Ich mache eine Animation wie diese:
CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
animation.duration = 100.0;
animation.path = self.animationPath.CGPath;
[view.layer addAnimation:animation forKey:@"animation"];
Works in Ordnung, dies schlägt jedoch jetzt fehl, wenn versucht wird, Berührungen auf dem sich auf dem Bildschirm bewegenden Objekt zu erkennen:
- (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;
}
Es schlägt fehl, weil der Rahmen der Ansicht nicht mehr mit der sichtbaren Position auf dem Bildschirm übereinstimmt, wenn sie animiert wird. Wie bekomme ichpointInside
mit einer Ansicht arbeiten, die animiert wird?