- Support for Swift 5.0
This will likely be the last version of the library to support iOS 9 and 10. Please see the issue about DeckTransition 3.0 for more information.
- Support for Swift 4.2 and Xcode 10
DeckTransition is now at version 2.0! 🎉
This is a major API upgrade. The previous API which required UIScrollViewDelegate
conformance has been entirely removed, and is replaced by an automatic UIScrollView
detection mechanism.
-
The
isDismissEnabled
property onDeckTransitioningDelegate
is removed. This behaviour is now managed automatically, which means that your old dismissal code is no longer needed and can be removed entirely, and your existing view controllers should "just work" in most cases.There exist some edge cases with the new mechanism, more about which, including workarounds, can be found in the documentationʼs new UIScrollView detection guide.
- A new
isSwipeToDismissEnabled
parameter is added to theDeckTransitioningDelegate
initializer, to disable the swipe-to-dismiss gesture entirely, if need be. This is set totrue
by default and requires no change to retain previous behaviour.
- Fixed an issue where animations were incorrect on older versions of iOS
- Added documentation, generated using Jazzy
- Fixed an animation glitch when presenting a modal with the push style
- Updated animations to work much better when presenting mutliple view controllers using DeckTransition
- Fixes an issue where the appearance method calls were sometimes unbalanced
- Fixed an issue where rotation would break the rounded corners
This is the last version of this framework to support Swift 3.x. Further development will be done on Swift 4.x
- Corner rounding is now animated
- Moved appearance transition methods to the presentation controller
- Fixed the alpha animation during presentation
- Support for safe area based layouts
- Added a new
DeckSnapshotUpdater
API to update presenting view snapshots
Rounded corners are now manually rendered without using a mask
Adds support for iPhone X
Fixed an issue where touches to the presentedView’s subview touches would be cancelled
Fixed an issue caused when the presented view controller presented and then dismissed a view controller
Fixes an issue with Xcode 9’s new build system
Fixes an exception caused by KVO observers never being removed
DeckTransition is finally at 1.0! 🎉 Here’s a summary of all the changes in this version
- Vastly improved performance
- Reorganized project structure
- Support for Carthage
- All “magic numbers” have been refactored out
One small change needs to be implemented in pre-1.0 projects to maintain compatibility with this version of DeckTransition. The entirety of the change consists of replacing the following line of code in your modal view controller’s UIScrollViewDelegate
implementation
scrollView.transform = CGAffineTransform(translationX: 0, y: scrollView.contentOffset.y)
with the block that follows below:
scrollView.subviews.forEach {
$0.transform = CGAffineTransform(translationX: 0, y: scrollView.contentOffset.y)
}
The implementation example in the ReadMe has been updated to reflect this.
- The
DeckTransitioningDelegate
initializer now requiresNSNumber
arguments for animation duration - A snapshot of the presenting view controller is shown instead of the view itself
- Fixed Objective-C compatibility issues
- Fixed a host of bugs related to the double height status bar and rotation
- You can now use
pod try
to try the library
- The transition can now be customized by passing in custom animation durations, other animations to be performed alongside the stock animation, and completion handlers
- Made the dismissal gesture friction more realistic
- Fixed an issue where touches to the presented view were being delayed
- Fixed an issue which may prevent masking for the presenting view controller
- Made the example application universal and added icons
- Initial release