¿Cómo implementas el efecto de volteo que ocurre cuando tocas una canción en Path?

En iOS, puede hacer lo siguiente:

Probablemente quieras usar Core Animation para lograr este efecto.

1. Configure dos vistas, una para la “vista frontal” y otra para la “vista posterior”.

2. Establezca la propiedad doubleSided de la capa de ambas vistas en NO. En el caso de Path, la “vista frontal” es la portada del álbum, y la “vista posterior” es la vista de información del álbum.
Agregue estos a una vista principal común.

3. Ejecute un CAAnimationGroup en la capa principal con estas dos animaciones:

  • Animación de escala en los ejes X e Y (transform.scale.y, transform.scale.x)
  • Traduzca la animación hacia arriba en el eje Y (transform.translation.y)

4. Al mismo tiempo, querrá voltear su “vista frontal” y “vista posterior”, esto se puede hacer aplicando una animación de rotación alrededor del Eje Y (transform.rotation.y) en ambas vistas. Gire la vista frontal de 0 a PI y la vista posterior de 0 a -PI.

5. Para lograr la perspectiva adecuada para la animación, querrá establecer el valor “m34” de la matriz de transformación de subcapa de la vista principal común. Al igual que:

  CATransform3D perspectiveTransform = CATransform3DIdentity;
 perspectiveTransform.m34 = -1.0f / 850.0f;
 parentView.layer.sublayerTransform = perspectiveTransform;

Esto debería lograr un efecto similar a la animación de volteo de Path. Además, es probable que no desee configurar su “vista posterior” por adelantado, y puede retrasar esto hasta que se complete la animación y desvanecerse en el contenido de su “vista posterior”. También asegúrese de que las máscaras de tamaño automático en sus vistas frontal y posterior estén configuradas en altura y ancho flexibles.

Aquí hay una manera de hacerlo en iOS:

//create animation [UIView beginAnimations:nil context:NULL]; //set duration [UIView setAnimationDuration:0.5]; //flip the view you want to hide [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.viewToFlip cache:YES]; //move the new view above the view you want to hide [self.view exchangeSubviewAtIndex:0 withSubviewAtIndex:1]; //do the animation [UIView commitAnimations];