¿Cómo volver a crear la transición de la presentación de diapositivas para fotos y fotos de iOS de Jetsetter?

Una de las aplicaciones iOS más impresionantes que he encontrado es Jetsetter's debido a su gran layout, interfaz increíble y usos creativos de la animation. Uno de mis componentes favoritos de la aplicación es la interfaz de foto teaser que tienen para los hoteles / locales. Proporcionan una presentación fotográfica minimizada, pero si desea la vista completa, puede hacer clic en ella y se expande para exponer una versión más grande de la image. Puedes ver un video borroso de esto en acción aquí .

Estoy interesado en recrear algo similar. Soy muy consciente de las galerías paginadas como MHPagingScrollview (que es la forma en que funciona el visor fotográfico más grande), sin embargo, lo que estoy tratando de descubrir es la forma correcta de manejar la transición. También he visto bibliotecas que manejan el efecto Ken Burns para imágenes. Sin embargo, lo que no está claro es si hay o no controlleres de vista separados.

¿Es esta una transición entre dos controlleres de vista separados? ¿O sería el visor fotográfico minimizado y maximizado ser parte del mismo controller? ¿Cómo replicarías de manera más eficiente algo similar? He embedded una captura de pantalla a continuación para ilustrar el antes y el después. Sin embargo, el video vinculado anteriormente ilustra con mayor eficacia esta transición.

introduzca la descripción de la imagen aquí

Ingeniero mobile de Jetsetter aquí. Son dos controlleres separados, pero la animation de transición ocurre en el primero. Aquí está el flujo:

  1. Un usuario toca la foto más pequeña.
  2. Una vista de transición que contiene la image de tamaño completo se coloca directamente sobre la image más pequeña.
  3. La vista de transición se anima a los límites de la pantalla.
  4. El controller del visor de fotos se presenta como un modal sin animation, completando el efecto en una animation continua.

El efecto se invierte cuando se descarta el controller modal.

El truco está en tu vista de transición. Creamos una subclass UIView (con clipsToBounds habilitada) que contiene un imageView. Los límites de la vista de transición se expanden para revelar el ImageView, lo que no provoca distorsión de la image final durante la animation.