Skip to content

Change Log

Luke Zhao edited this page Feb 2, 2017 · 22 revisions

0.1.4 (WIP)

0.1.3

  • 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 source modifier. Global is the default prior to 0.1.3 Local 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.

0.1.2

  • HeroPlugin returning .infinity duration will be treated as wanting interactive transition
  • few bug fixes.
  • Update plugin API protocol to be more concise.

0.1.1

  • Swift Package Manager Support, Thanks to @mRs-
  • Bug fixes #41, #36, & #38
  • Cleaner navigation bar animation.
  • Better alpha animation support.

0.1.0

  • 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? to heroModifierString:String? (breaking change!)

  • add heroModifiers:[HeroModifier]? to UIView

  • add a shared singleton Hero object for controlling the interactive transition. Which can be accessed by Hero.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:

    • curvetimingFunction
    • sourceIDsource
    • clearSubviewModifiersignoreSubviewModifiers
  • fix a bug with heroReplaceViewController API. PR 30

  • fix a bug with UIStackView not animating correctly. PR 22

  • add recursive ignoreSubviewModifiers modifier

  • add radial & inverseRadial cascade:

To migrate from previous versions:

Do a whole-project find & replace(cmd+option+shift+F) for:

  • heroModifiersheroModifierString
  • curvetimingFunction
  • sourceIDsource
  • clearSubviewModifiersignoreSubviewModifiers

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.

0.0.5

0.0.4

  • Add Carthage support

0.0.3

  • Cleaner resume animation after an interactive transition.
  • plugin API: seekTo(progress:Double) changed to seekTo(timePassed:TimeInterval)
  • plugin API: resume(progress:Double, reverse:Bool) changed to resume(timePassed:TimeInterval, reverse:Bool)
  • provides dynamic duration by default. material design(duration & timing)

0.0.2

  • rename clearSubviewClasses to clearSubviewModifiers. 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 HeroModifiers for source view when matched with a target view with the same HeroID
  • some small optimization & bug fixes

Clone this wiki locally