ios - Efecto de "Movimiento mágico" Transición personalizada
autolayout transition (1)
Mira este repositorio, creo que esto es lo que estás buscando BCMagicTransition: https://github.com/boycechang/BCMagicTransition
El problema con su código es que no está convirtiendo los marcos de sus subvistas de su celda de vista de colección que desea animar a las coordenadas del controlador de vista de contenedor de la transición, y lo mismo con los marcos finales para sus posiciones. Aunque está utilizando AutoLayout, puede manipular las vistas con sus marcos.
Para lograr esto, consulte este método ( documentación ):
func convertRect(rect: CGRect, fromView view: UIView?) -> CGRect
También debe considerar la animación de instantáneas de las vistas que desea animar. A continuación, solo agregue las instantáneas a la vista de contenedor y anímelas a los fotogramas finales convertidos, luego quítelos cuando la animación esté completa.
Espero que esto ayude !
Estoy tratando de obtener una transición personalizada entre dos Controladores de Vista. Primero, aquí hay una imagen para ilustrar lo que quiero:
Quiero que UICollectionViewCell se expanda a toda la pantalla. En esta celda, las subvistas se colocan con Autolayout en IB.
Solo quiero que cada subvista vaya a la nueva posición. Así que probé subview.frame = newSubview.frame
en el bloque de animación, pero no funciona (debido a Autolayout, creo).
Pensé eliminar las restricciones mientras ocurría la animación, pero no funciona.
También intenté hacer @IBOutlets de las restricciones y cambiar la propiedad constante.
Aquí está mi código:
let detailView = detailViewController.view
let cellView = self.selectedCell
container.addSubview(cellView!)
let duration = self.transitionDuration(transitionContext)
UIView.animateWithDuration(duration, delay: 0.0, options: .CurveEaseInOut, animations: {
let newFrame = detailViewController.view.frame
cellView!.frame = newFrame
cellView!.imageView.frame = newFrame
cellView!.labelTopConstraint.constant = 27
cellView!.labelRightConstraint.constant = 8
cellView!.layoutIfNeeded()
}
...
De hecho, cuando comienza la animación, las etiquetas se ajustan a una posición, luego se mueven y al final no están en la posición correcta ...
Algunas ideas ? Gracias