-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Change Log
-
Support local coordinate space.
Global coordinate space Local (parent's) coordinate space Animating views are not affected by parent views' attributes Animating views are affected by parent views' attributes When parent view moves, subviews that have its own modifiers do not move with the parent view. I.e. they are being taken out of the view hierarchy. When parent view moves, subviews that have its own modifiers move along with the parent view. I.e. similar to how a view behave when its parent view moves. Used for matched views & views with sourcemodifier. Global is the default prior to 0.1.3Local is the default coordinate space after 0.1.3 -
New useGlobalCoordinateSpace modifier. Force the view to use global coordinate space. I.e. won't move with its parent view.
-
HeroPluginreturning .infinity duration will be treated as wanting interactive transition - few bug fixes.
- Update plugin API protocol to be more concise.
- Swift Package Manager Support, Thanks to @mRs-
- Bug fixes #41, #36, & #38
- Cleaner navigation bar animation.
- Better alpha animation support.
-
add HeroModifier class and HeroTargetState struct
- HeroModifier is a swift enum-like class that provides the same functionality of the original string-based heroModifiers.
- HeroTargetState is a struct that holds view state informations. It can be build from [HeroModifier]. Mostly used internally and for building HeroPlugin.
-
change the original
heroModifiers:String?toheroModifierString:String?(breaking change!) -
add
heroModifiers:[HeroModifier]?to UIView -
add a shared singleton
Heroobject for controlling the interactive transition. Which can be accessed byHero.shared -
few changes to the protocols
-
protocol HeroAnimator
func temporarilySet(view:UIView, to modifiers:HeroModifiers) // to func temporarilySet(view:UIView, targetState:HeroTargetState)
-
protocol HeroViewControllerDelegate
@objc optional func wantInteractiveHeroTransition(context:HeroInteractiveContext) -> Bool // to @objc optional func wantInteractiveHeroTransition() -> Bool
-
remove HeroInteractiveContext protocol
-
-
update HeroPlugin to conform to the new protocols definitions.
-
rename a few modifiers:
- curve → timingFunction
- sourceID → source
- clearSubviewModifiers → ignoreSubviewModifiers
-
fix a bug with
heroReplaceViewControllerAPI. PR 30 -
fix a bug with UIStackView not animating correctly. PR 22
-
add recursive
ignoreSubviewModifiersmodifier -
add radial & inverseRadial cascade:
Do a whole-project find & replace(cmd+option+shift+F) for:
- heroModifiers → heroModifierString
- curve → timingFunction
- sourceID → source
- clearSubviewModifiers → ignoreSubviewModifiers
Remember to also replace these inside the storyboard. In code, please migrate to the new type-safe heroModifiers. It provides better type-checking and more functionality.
- Add live injection example
- Make
snapshotViewavailable to all HeroAnimators. - Add
heroWillStartTransition&heroDidEndTransitioncallbacks toHeroViewControllerDelegate - Fix animation for UIStackView https://github.com/lkzhao/Hero/pull/18
- Smoother UIImageView animation for bounds change https://github.com/lkzhao/Hero/pull/16
- Add Carthage support
- Cleaner resume animation after an interactive transition.
- plugin API:
seekTo(progress:Double)changed toseekTo(timePassed:TimeInterval) - plugin API:
resume(progress:Double, reverse:Bool)changed toresume(timePassed:TimeInterval, reverse:Bool) - provides dynamic duration by default. material design(duration & timing)
- rename
clearSubviewClassestoclearSubviewModifiers. was a naming mistake. - set default animation to be CABasicAnimation with the Standard Curve from material design (easing).
- add the new arc effect from material design (movement).
- add arc effect to Basic, Menu, & ListToGrid examples.
- add the ability to show arc path in the Debug Plugin.
- ignore
HeroModifiersfor source view when matched with a target view with the sameHeroID - some small optimization & bug fixes