ubicación ubicacion servicios segundo puedo plano localizacion desactivar activar iphone objective-c ios animation cgpoint

iphone - ubicacion - Accediendo a la posición actual de UIView durante la animación



ubicacion segundo plano iphone (2)

Mucho más fácil configurar un KVO para view.frame, como se indica en esta respuesta . Puede inspeccionar el nuevo valor para obtener el nuevo marco como CGRect.

Estoy tratando de encontrar la posición actual de un iPhone ImageView que está animando en la pantalla.

Creo y animar el imageView como tal

-(IBAction)button:(UIButton *)sender{ UIImageView *myImageView =[[UIImageView alloc] initWithImage: [UIImage imageNamed:@"ball.png"]]; myImageView.frame = CGRectMake(0, self.view.frame.size.height/2, 40, 40); [self.view addSubview:myImageView]; [myArray addObject:myImageView]; [UIView animateWithDuration:.5 delay:0 options:(UIViewAnimationOptionAllowUserInteraction) // | something here?) animations:^{ myImageView.frame = CGRectOffset(myImageView.frame, 500, 0); } completion:^(BOOL finished){ [myArray removeObject:myImageView]; [myImageView removeFromSuperview]; [myImageView release]; } ]; }

a continuación, para detectar el CGPoint actual de la imagen que llamo este método cada 60 de segundo

-(void)findPoint{ for (UIImageView *projectile in bullets) { label.text = [NSString stringWithFormat:@"%f", projectile.center.x]; label2.text = [NSString stringWithFormat:@"%f", projectile.center.y]; } }

Sin embargo, esto solo me da el punto donde termina la animación, quiero obtener el CGPoint actual de la imagen que está animando en la pantalla. ¿Hay alguna opción que deba aplicar aparte de UIViewAnimationOptionAllowUserInteraction para hacer esto? Si no, ¿cómo obtengo la posición actual de una animación imageView?


Puede usar presentationLayer, una propiedad del CALayer que "proporciona una aproximación cercana a la versión de la capa que se está mostrando actualmente". Solo úsalo así:

CGRect projectileFrame = [[projectile.layer presentationLayer] frame];