Junior — Middle
Navigation Controller-də ekranlar arasında keçid zamanı öz animasiya keçidini necə həyata keçirmək olar?
sobes.tech Süni İntellekt
AI-dan cavab
UINavigationController içində ekranlar arasında xüsusi animasiya keçidini həyata keçirmək üçün UIViewControllerAnimatedTransitioning və UINavigationControllerDelegate protokollarını istifadə etmək lazımdır.
-
UIViewControllerAnimatedTransitioningprotokolünü həyata keçirən bir sinf yaradın və animasiya məntiqini aşağıdakı metodlarda təsvir edin:transitionDuration(using:)— animasiya müddətianimateTransition(using:)— keçidin özü
-
UINavigationController-in delegatını
UINavigationControllerDelegate-i həyata keçirən obyektlə təyin edin və metodda:func navigationController(_ navigationController: UINavigationController, animationControllerFor operation: UINavigationController.Operation, from fromVC: UIViewController, to toVC: UIViewController) -> UIViewControllerAnimatedTransitioning? { // animasiya obyektinizi qaytarın return customAnimator }
Sadə bir xüsusi animator nümunəsi:
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)
}
}
}