johnvuko
JTMaterialTransition
Swift

An iOS transition for controllers based on material design.

Last updated Jun 12, 2026
953
Stars
85
Forks
0
Issues
0
Stars/day
Attention Score
58
Language breakdown
Swift 92.1%
Ruby 7.9%
โ–ธ Files click to expand
README

JTMaterialTransition

CI Status Version License Platform

An iOS transition for controllers based on material design.

Installation

With CocoaPods, add this line to your Podfile.

pod 'JTMaterialTransition', '~> 2.0'

Screenshots

Example

Usage

Basic usage

import UIKit
import JTMaterialTransition

class ViewController: UIViewController {

weak var presentControllerButton: UIButton? var transition: JTMaterialTransition?

override func viewDidLoad() { super.viewDidLoad() self.transition = JTMaterialTransition(animatedView: self.presentControllerButton) } func didPresentControllerButtonTouch () { let controller = SecondViewController() controller.modalPresentationStyle = .custom controller.transitioningDelegate = self.transition self.present(controller, animated: true, completion: nil) }

}

Notes

The animatedView is not directly used, a new view is created based on the frame, backgroundColor properties for the animation. If you don't want to provide a view, you have to set startFrame and startBackgroundColor properties and call init instead of initWithAnimatedView:.

startFrame must be the coordinates relative to the window:

var startFrame = animatedView.superview?.convert(animatedView.frame, to: nil)

Warning

The controller presented must have a backgroundColor else the effect can be a little strange. If you use a UINavigationController or another container don't forget to set the backgroundColor with controllerPresented.view.backgroundColor = UIColor.yourColor.

Requirements

  • iOS 8.0 or higher
  • Swift 4.2

Author

License

JTMaterialTransition is released under the MIT license. See the LICENSE file for more info.

ยฉ 2026 GitRepoTrend ยท johnvuko/JTMaterialTransition ยท Updated daily from GitHub