GYSideTransitioningDelegate.swift 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. //
  2. // GYSideTransitioningDelegate.swift
  3. // GYSide
  4. //
  5. // Created by gaoyuan on 2018/1/29.
  6. // Copyright © 2018年 gaoyuan. All rights reserved.
  7. //
  8. import UIKit
  9. class GYSideTransitioningDelegate: NSObject,UIViewControllerTransitioningDelegate {
  10. var presentationInteractiveTransition: GYSidePercentInteractiveTransition?
  11. var dismissalInteractiveTransition: GYSidePercentInteractiveTransition!
  12. var config: GYSideConfig!
  13. init(config:GYSideConfig?) {
  14. self.config = config
  15. }
  16. func animationController(forPresented presented: UIViewController, presenting: UIViewController, source: UIViewController) -> UIViewControllerAnimatedTransitioning? {
  17. return GYSideAnimatedTransitioning(showType: .show, config: config)
  18. }
  19. func animationController(forDismissed dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? {
  20. return GYSideAnimatedTransitioning(showType: .hidden, config: config)
  21. }
  22. // present交互的百分比
  23. func interactionControllerForPresentation(using animator: UIViewControllerAnimatedTransitioning) -> UIViewControllerInteractiveTransitioning? {
  24. if presentationInteractiveTransition == nil {
  25. return nil
  26. }else {
  27. return (presentationInteractiveTransition?.isInteractive)! ? presentationInteractiveTransition : nil
  28. }
  29. }
  30. // dismiss交互的百分比
  31. func interactionControllerForDismissal(using animator: UIViewControllerAnimatedTransitioning) -> UIViewControllerInteractiveTransitioning? {
  32. return dismissalInteractiveTransition.isInteractive ? dismissalInteractiveTransition : nil
  33. }
  34. deinit {
  35. // print( NSStringFromClass(self.classForCoder) + " 销毁了---->3")
  36. }
  37. }