Junior — Middle
Kuidas saab rakendada oma animatsioonilise ülemineku Navigation Controlleris ekraanide vahel?
sobes.tech AI
Vastus AI-lt
Selleks, et rakendada oma animatsioonipõhist üleminekut ekraanide vahel UINavigationControlleris, peate kasutama protokolle UIViewControllerAnimatedTransitioning ja UINavigationControllerDelegate.
-
Looge klass, mis implementeerib
UIViewControllerAnimatedTransitioning, kus kirjeldate animatsiooni loogikat:transitionDuration(using:)— animatsiooni kestusanimateTransition(using:)— ise ülemineku animatsioon
-
Määrake UINavigationControlleri delegaadiks objekt, mis implementeerib
UINavigationControllerDelegate, ja meetodis:func navigationController(_ navigationController: UINavigationController, animationControllerFor operation: UINavigationController.Operation, from fromVC: UIViewController, to toVC: UIViewController) -> UIViewControllerAnimatedTransitioning? { // tagastate oma animatsiooni objekti return customAnimator }
Näide lihtsast kohandatud animatorist:
class CustomAnimator: NSObject, UIViewControllerAnimatedTransitioning {
func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval {
return 0.3
}
func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
guard let toView = transitionContext.view(forKey: .to) else {
transitionContext.completeTransition(false)
return
}
let container = transitionContext.containerView
toView.alpha = 0
container.addSubview(toView)
UIView.animate(withDuration: transitionDuration(using: transitionContext), animations: {
toView.alpha = 1
}) { finished in
transitionContext.completeTransition(finished)
}
}
}