ios objective-c uiviewcontroller uiviewanimationtransition custom-transition

ios - Expand/collapse UITableViewCell para lograr una transición similar a Evernote



objective-c uiviewcontroller (3)

Un enfoque a considerar: puede usar un UICollectionView con dos diseños diferentes. El diseño sin expandir puede ser simplemente un UICollectionViewFlowLayout y el diseño expandido puede ser una subclase que reduce / atenúa todas las celdas excepto la que desea expandir. Luego puede usar setCollectionViewLayout:animated: para cambiar entre ellos.

El borde verde sería simplemente el fondo de la vista padre, ya que esto no implicaría un UINavigationController .

Y si desea que el gesto de barrido interactivo retroceda desde el diseño expandido, UIScreenEdgePanGestureRecognizer un UIScreenEdgePanGestureRecognizer a una animación de diseño de vista de colección interactiva (vea startInteractiveTransitionToCollectionViewLayout:completion: .

Estoy interesado en lograr una transición entre los controladores de vista muy similar a la transición en la aplicación de iOS de Evernote:

Cuando se toca "Lugares", se expande suavemente hacia lo que se parece a UINavigationController con un borde verde a su alrededor. Para colapsarlo, puedo tocar "Atrás" o deslizar desde el lado izquierdo de la pantalla para pasar gradualmente a la pantalla de inicio.

No busco muestras de código exactas para copiar y pegar, sino más bien una guía de alto nivel sobre qué conceptos y API de Apple aprovechar. Más específicamente,

  • ¿Qué API de transición / animación usa esto probablemente?
  • ¿Cómo puedo lograr el borde verde alrededor de todo el controlador de vista una vez que se expande "Lugares"?

A juzgar por ese borde alrededor de los lugares en pantalla completa, diría que no es un UINavigationController sino más bien dos controladores de vista con transición personalizada entre ellos.

Esto se introdujo con iOS7 y puedes encontrar algunos tutoriales en línea para implementar cualquier transición personalizada:

http://www.objc.io/issue-12/custom-container-view-controller-transitions.html

https://developer.apple.com/library/IOs/documentation/UIKit/Reference/UIViewControllerTransitioningDelegate_protocol/index.html


Creo que usa una transición personalizada para el zoom en efecto. Se puede lograr utilizando este marco de terceros: https://github.com/mluisbrown/LCZoomTransition como un patrón ya que el controlador de vista de destino se ve como un controlador de vista modal y no de destino.