Estoy desarrollando un juego que contenía algo de vista (como juego de tarjeta de memoria) y quiero que cuando el usuario toque una carta este voltee y muestre otra vista. Yo uso este código:iOS - Animación de volteo solo para vista específica
- (void)flipCard:(id)sender {
UIButton *btn=(UIButton *)sender;
UIView *view=[btn superview];
UIView *flipView=[[UIView alloc] initWithFrame:[view frame]];
[flipView setBackgroundColor:[UIColor blueColor]];
[[flipView layer] setCornerRadius:10];
NSLog(@"Flip card : view frame = %f, %f",view.frame.origin.x, view.frame.origin.y);
[UIView transitionFromView:view toView:flipView duration:1.0 options:UIViewAnimationOptionTransitionFlipFromLeft completion:^(BOOL finished) {
}];
}
Cada punto de vista tiene un botón transparente que cubre la totalidad de la vista, de modo que cuando el usuario toque en una vista es como toque el botón. El botón llama al método anterior que pasa al remitente. Cuando comienza la animación, todas las vistas se invierten, no solo la vista que obtengo del remitente. ¿Cómo puedo hacer?
Quizás no sea una solución directa, pero puede para extender UIButton por los botones que usaste en las tarjetas y tener un puntero débil a la vista de la tarjeta, por lo tanto, llamar a btn.cardView definitivamente te daría la vista de la tarjeta que deseas, si la supervista no funciona. –