Red de conocimiento informático - Material del sitio web - Cómo utilizar Swift para implementar animaciones de cambio personalizadas entre páginas

Cómo utilizar Swift para implementar animaciones de cambio personalizadas entre páginas

Primero implemente el controlador para cambiar entre páginas

import UIKit

clase CustomAnimationController: NSObject, UIViewControllerAnimatedTransitioning {

func TransitionDuration(transitionContext: UIViewControllerContextTransitioning) -> NSTimeInterval {

return 0.5

}

func animateTransition(transitionContext: UIViewControllerContextTransitioning) {

let toViewController = TransitionContext. viewControllerForKey(UITransitionContextToViewControllerKey)

let fromViewController = TransitionContext.viewControllerForKey(UITransitionContextFromViewControllerKey)

let finalFrame = TransitionContext.finalFrameForViewController(toViewController!)

let ContainerView = TransitionContext.containerView ()

let screenBounds = UIScreen.mainScreen().bounds

toViewContro www.hbbz08.com ller?.view.frame = CGRectOffset(finalFrame, 0, screenBounds.size.height )

let toViewView = toViewController?.view

containerView.addSubview(toViewView!)

//animación

let duración = self .transitionDuration(transitionContext)

UIView.animateWithDuration(duración, animaciones: {

fromViewController?.view.alpha = 0.5

toViewController?.view.frame = finalFrame

}, finalización: {(Bool terminado) en

fromViewController?.view.alpha = 1.0

transitionContext.completeTransition(true)

})

}

}

Agregar delegado a la clase del controlador de vista

clase FirstViewController: UIViewController,UIViewControllerTransition

ingDelegate

Agregar una propiedad

var customAnimationController:CustomAnimationController

Inicializar

required init(coder aDecoder: NSCoder) {

customAnimationController = CustomAnimationController()

super.init(coder: aDecoder)

}

Especifique delegado como self en la transición antes de cambiar de página

p>

anular la función prepareForSegue(segue: UIStoryboardSegue, remitente: AnyObject?) {

//

if segue.identifier == "ShowAuthor" {

let toVC = segue.destinationViewController as UIViewController

toVC.transitioningDelegate = self

}

}

Implementar delegado

//MARK: TransitionDelegate

func AnimationControllerForPresentedController (presentado: UIViewController, presentingController presentando: UIViewController, sourceController fuente: UIViewController) -> UIViewControllerAnimatedTransitioning?

}