This major release drops official support for iOS 9 and bazel.
This patch release fixes a bug on iOS 13 where the presented view controller would not be added to the view hierarchy.
- Always add the toView to the container. (#68) (featherless)
This major release drops official support for iOS 8.
- Drop support for iOS 8 (#65) (featherless)
This major release upgrades the bazel dependencies and workspace. This change is breaking for anyone
using bazel to build this library. In order to use this library with bazel, you will also need to
upgrade your workspace versions to match the ones now used in this library's WORKSPACE
file.
- Add missing import (#60) (Louis Romero)
- Update bazel workspace to latest versions. (#63) (featherless)
This major change introduces a breaking API change for Swift clients.
Swift only: The UIViewController extension property transitionController
has been renamed to mdm_transitionController
.
- [breaking] Rename the transitionController Swift API to mdm_transitionController. (#59) (featherless)
renamed (swift) method: transitionController
to mdm_transitionController
.
This patch release fixes a bug where the frames of custom presented views would be incorrectly set to the view controller's frame.
- Standardize the kokoro and bazel files. (#51) (featherless)
This patch release resolves a build warning and migrates the project's continuous integration to bazel and kokoro.
- Replace arc with bazel and kokoro build runner for continuous integration. (#47) (featherless)
- Reorder if statement to avoid nullability warning. (#48) (ianegordon)
This major release adds support for composable transitions. See the catalog app for a variety of examples making use of this new functionality.
MDMTransitionWithFallback
's return value is now nonnull. If you depended on the nil behavior, you must now conform to the new protocolMDMTransitionWithFeasibility
and returnNO
forcanPerformTransitionWithContext:
.MDMTransitionDirection
has been renamed toTransitionDirection
in Swift.
MDMTransitionWithFeasibility
allows a transition to indicate whether it is capable of performing
the transition with a given context.
The new composeWithTransition:
API on MDMTransitionContext
makes it possible to build modular
transition objects that delegate responsibility out to other transition objects. View the
PhotoAlbumTransition
example transition to see the following code in action:
context.compose(with: FadeTransition(target: .foreView, style: .fadeIn))
context.compose(with: SpringFrameTransition(target: .target(snapshotContextView),
size: fitSize))
if let toolbar = foreDelegate.toolbar(for: self) {
context.compose(with: SlideUpTransition(target: .target(toolbar)))
}
- Add nullability annotations to MDMTransitionNavigationControllerDelegate. (#46) (featherless)
- Update Xcode build settings to Xcode 9 warnings and resolve build error. (Jeff Verkoeyen)
- Rework multi-transition support using composition. (#43) (featherless)
- Fix the Swift symbol name for MDMTransitionDirection. (#44) (featherless)
- Fix bug where transitions would not complete if the presentation controller didn't implement the startWithContext method. (#45) (featherless)
- Fix broken unit tests. (Jeff Verkoeyen)
- Add multi-transition support. (#40) (featherless)
- Remove unused protocol forward declaration. (Jeff Verkoeyen)
changed protocol MDMTransitionWithCustomDuration
now conforms to MDMTransition
.
changed protocol MDMTransitionWithFallback
now conforms to MDMTransition
.
new protocol MDMTransitionWithFeasibility
.
new method composeWithTransition:
- Add platform to the Podfile per pod install recommendation. (Jeff Verkoeyen)
This minor release deprecates some behavior and replaces it with a new API.
MDMTransitionWithFallback
nil behavior is now deprecated. In order to fall back to system transitions you must now conform toMDMTransitionWithFeasibility
and return NO.
new protocol MDMTransitionWithFeasibility
.
This patch release resolves Xcode 9 compiler warnings.
- Explicitly include void for block parameters. (#41) (ianegordon)
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.
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)
- 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)
new method: deferToCompletion:
. Defers execution of the provided work until the completion of the transition.
new class: MDMTransitionPresentationController
. A transition presentation controller implementation that supports animation delegation, a darkened overlay view, and custom presentation frames.
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.
- Add photo album example. (#38) (featherless)
- Add some organization to the transition examples. (#36) (featherless)
This minor release resolves a build warning and introduces the ability to customize navigation controller transitions.
- MDMTransitionNavigationControllerDelegate makes it possible to customize transitions in a UINavigationController.
- Add transition navigation controller delegate (#29) (featherless)
- Fix null dereference caught by the static analyzer (#30) (ianegordon)
new class: MDMTransitionNavigationControllerDelegate.
Fixed the umbrella header name to match the library name.
The library has been renamed to MotionTransitioning.
Prior releases under the library name MaterialMotionTransitioning
.
The library has been renamed to MaterialMotionTransitioning.
TransitionContext
now exposes apresentationController
property.
- Rename the library to MaterialMotionTransitioning. (Jeff Verkoeyen)
- Expose the presentation controller in TransitionContext (#26) (Eric Tang)
Auto-generated by running:
apidiff origin/stable release-candidate objc src/MaterialMotionTransitioning.h
new property: presentationController
in MDMTransitionContext
- Set version to 1.0.0. (Jeff Verkoeyen)
Prior releases under the library name Transitioning
.
This is a patch fix release to address build issues within Google's build environment.
- Add missing UIKit.h header imports. (Jeff Verkoeyen)
- Update Podfile.lock. (Jeff Verkoeyen)
- Add sliding menu as an example (#21) (Eric Tang)
This minor release introduces two new features to the Transition protocol family.
- Add support for fallback transitioning. (#16) (featherless)
- Add support for customizing transition durations (#11) (Eric Tang)
new protocol: MDMTransitionWithFallback
new method: -fallbackTransitionWithContext:
in MDMTransitionWithFallback
new protocol: MDMTransitionWithCustomDuration
new method: -transitionDurationWithContext:
in MDMTransitionWithCustomDuration
new property: activeTransition
in MDMTransitionController
Initial release.
Includes support for building simple view controller transitions and transitions that support custom presentation.
- Clarify the docs for default modal presentation styles. (#4) (featherless)
- Initial implementation. (#1) (featherless)
- Simplify the frame calculation APIs in the example. (#5) (featherless)