Expandir / contraer UITableViewCell para lograr una transición similar a Evernote

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

introduzca la descripción de la imagen aquí

Cuando se toca "Lugares", se expande sin problemas en lo que parece UINavigationController con un borde verde a su alnetworkingedor. Para contraerlo, puedo tocar "Atrás" o deslizarlo desde el lado izquierdo de la pantalla para ir gradualmente a la pantalla de inicio.

No estoy buscando muestras de código exactas para copyr y pegar, sino para get una guía de alto nivel sobre qué conceptos y API de Apple deben aprovechar. Más específicamente,

  • ¿Qué API de transición / animation es probable que use?
  • ¿Cómo puedo lograr el borde verde alnetworkingedor de todo el controller de vista una vez que se haya expandido "Lugares"?

Un enfoque a considerar: puede usar una UICollectionView con dos layouts diferentes. El layout no expandido puede ser simplemente un UICollectionViewFlowLayout y el layout expandido puede ser una subclass que networkinguce / desvanece todas las celdas excepto la que desea expandir. Luego puede usar setCollectionViewLayout:animated: para alternar entre ellos.

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

Y si desea que el gesto de deslizar interactivo vuelva desde el layout ampliado, UIScreenEdgePanGestureRecognizer un UIScreenEdgePanGestureRecognizer a una animation de layout de vista de colección interactiva (consulte startInteractiveTransitionToCollectionViewLayout:completion: .

Creo que utiliza una transición personalizada para el efecto de zoom. Puede lograrse utilizando este marco de terceros: https://github.com/mluisbrown/LCZoomTransition como un patrón ya que el controller de vista de destino se parece a un controller de vista modal y no de destino.

A juzgar por ese borde alnetworkingedor de los lugares en pantalla completa, diría que no es un UINavigationController sino dos controlleres de vista con una transición personalizada entre ellos.

Esto se introdujo con iOS7 y puede 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