No Description

FFPresentationController.swift 1.5KB

    // // FFPresentationController.swift // FFAlert // // Created by FFIB on 2017/11/13. // Copyright © 2017年 FFIB. All rights reserved. // import UIKit class FFPresentationController: UIPresentationController { private let dimmingView = UIView() override init(presentedViewController: UIViewController, presenting presentingViewController: UIViewController?) { super.init(presentedViewController: presentedViewController, presenting: presentingViewController) dimmingView.backgroundColor = UIColor(white: 0, alpha: 0.4) } override func presentationTransitionWillBegin() { super.presentationTransitionWillBegin() presentingViewController.view.tintAdjustmentMode = .dimmed dimmingView.alpha = 0 containerView?.addSubview(dimmingView) let coordinator = presentedViewController.transitionCoordinator coordinator?.animate(alongsideTransition: { _ in self.dimmingView.alpha = 1 }, completion: nil) } override func dismissalTransitionWillBegin() { super.dismissalTransitionWillBegin() presentingViewController.view.tintAdjustmentMode = .automatic let coordinator = presentedViewController.transitionCoordinator coordinator?.animate(alongsideTransition: { _ in self.dimmingView.alpha = 0 }, completion: nil) } override func containerViewWillLayoutSubviews() { super.containerViewWillLayoutSubviews() if let containerView = containerView { dimmingView.frame = containerView.frame } } }