To use animator, just add following code to UIViewControllerTransitioningDelegate
instance.
extension ViewController: UIViewControllerTransitioningDelegate {
func animationController(forPresented presented: UIViewController, presenting: UIViewController, source: UIViewController) -> UIViewControllerAnimatedTransitioning? {
return Cascade.animator(for: .present)
}
func animationController(forDismissed dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? {
return Cascade.animator(for: .dismiss)
}
}
You can also change animation parameters
struct Params: CascadeAnimationParameters {
var animationDuration: TimeInterval = 1.5
var presentingVCAlpha: CGFloat = 0.97
var presentingTopMargin: CGFloat = 25
var presentedTopMargin: CGFloat = 50
var scale: CGFloat = 1
var backgroundColor: UIColor = .green
var cornerRadius: CGFloat = 15
var presentedInitialFrame: CGRect? = CGRect(x: 0, y: UIScreen.main.bounds.height - 32, width: UIScreen.main.bounds.width, height: 32)
}
// ...
class ViewController: UIViewController {
let params = Params()
}
// ...
extension ViewController: UIViewControllerTransitioningDelegate {
func animationController(forPresented presented: UIViewController, presenting: UIViewController, source: UIViewController) -> UIViewControllerAnimatedTransitioning? {
return Cascade.animator(for: .present, animationParams: params)
}
func animationController(forDismissed dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? {
return Cascade.animator(for: .dismiss, animationParams: params)
}
}
And don't forget to set transitioningDelegate for presented view contreller. For example:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
segue.destination.transitioningDelegate = self
}
To run the example project, clone the repo, and run pod install
from the Example directory first.
Default parameters
Custom parameters
Custom initial frame
CascadePresenter is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod "CascadePresenter"
Nick Kibish, [email protected]
CascadePresenter is available under the MIT license. See the LICENSE file for more info.