v3.2.0
This minor release introduces new features for presentation, view snapshotting, and defered transition work. There is also a new photo album example demonstrating how to build a contextual transition in which the context may change.
New features
Transition context now has a deferToCompletion:
API for deferring work to the completion of the transition.
// Example (Swift):
foreImageView.isHidden = true
context.defer {
foreImageView.isHidden = false
}
MDMTransitionPresentationController
is a presentation controller that supports presenting view controllers at custom frames and showing an overlay scrim view.
The new MDMTransitionViewSnapshotter
class can be used to create and manage snapshot views during a transition.
let snapshotter = TransitionViewSnapshotter(containerView: context.containerView)
context.defer {
snapshotter.removeAllSnapshots()
}
let snapshotView = snapshotter.snapshot(of: view, isAppearing: context.direction == .forward)
Source changes
- Add a snapshotting API and contextual transition example (#37) (featherless)
- Store the presentation controller as a weak reference. (#34) (featherless)
- Add a stock presentation controller implementation. (#35) (featherless)
- Minor formatting adjustment. (Jeff Verkoeyen)
API changes
MDMTransitionContext
new method: deferToCompletion:
. Defers execution of the provided work until the completion of the transition.
MDMTransitionPresentationController
new class: MDMTransitionPresentationController
. A transition presentation controller implementation that supports animation delegation, a darkened overlay view, and custom presentation frames.
MDMTransitionViewSnapshotter
new class: MDMTransitionViewSnapshotter
. A view snapshotter creates visual replicas of views so that they may be animated during a transition without adversely affecting the original view hierarchy.
Non-source changes
- Add photo album example. (#38) (featherless)
- Add some organization to the transition examples. (#36) (featherless)