Hero Versions Save

Elegant transition library for iOS & tvOS

1.0.1

6 years ago
  • fix an issue where interactive transition happens abruptly (#299) @capt-hook
  • fix a force unwrap crash (#333) @imougy
  • fix a division by zero crash when size is zero (#313) @caihua
  • Use context's final frame for destination (#327) @zacwest
  • Changes observeForProgressUpdate protection level to public, instead of internal (#329) @mad102190
  • ability to override cornerRadius for matched view

1.0.0

6 years ago

This release fix some compatibility issue with swift 4, Xcode 9, and iOS 11.

Also looking for a maintainer!

Hero helped me learned a lot about iOS over the last year. Fighting the iOS animation system and dealing with UI bugs has been quite a journey. But I am sorry to say that I do not have to time to maintain this project anymore. The scope of this project has become unmanageable for me to handle. I am looking for a project maintainer to this project and I'm open to transfer this to a public organization instead of under my personal account.

I will still be using Hero in productions, and contribute to critical bug fixes and new iOS release.

1.0.0-alpha.4

6 years ago
  • fix a crash when fullScreenSnapshot fails to capture. (happens when the app is backgrounded)

1.0.0-alpha.3

6 years ago

1.0.0-alpha.2

6 years ago

This is the second alpha version for 1.0.0 release. Mostly bug fixes.

  • fix an issue where the duration is incorrect when resuming an animation with delay
  • fix a performance issue with interactive transition
  • remove most of the force unwrapped optional
  • fix a crash where finish/cancel is called before the animation has started.
  • make internal CAMediaTimingFunctions public
  • default container color is now black. to customize, construct your own HeroTransition object.

Example project

  • animate tabbar so that it doesnt cover the content
  • add a playground in the example project for quick tests

1.0.0-alpha.1

6 years ago

Sorry guys for the inactivity with this project. I have been having some other commitments. From now on, I will start maintaining and updating it more often.

So to prepare for stable release 1.0, there will be a few alpha versions. I will start to clean up issues and start monitor new ones. Feel free to submit anything you have encountered while using the new versions.

New Features

  • .useNoSnapshot will now try to insert the view back to the view hierarchy once the transition completes. So you don't need to manually insert it back.

    • Note: for views that have collection view or table view as the superview, Hero might not be able to insert it into the correct subview index since the collection view and table view might have altered their subviews during the transition.
  • .useNoSnapshot will now animate subview layout changes. Very convenient when you want your custom layout be animated during the transition.

  • Added .whenXXX modifiers to make hero more declaritive.

    • instead of conforming to HeroViewControllerDelegate, you can now use .whenPresenting, .whenDismissing, .whenApearing, .whenDisapearing, .whenMatched, or your own conditions with .when
  • Added isHeroEnabledForSubviews property on UIView. Setting this to true will let Hero skip over the subview tree. This saves a lot of computation time when the subview tree is complex.

  • Better support iOS custom keyboard

  • Better support UIVisualEffectView

  • You can now create your own instance of HeroTransition instead of using isHeroEnabled & Hero.shared.

    • just create an instance of HeroTransition and assign it to the transitionDelegate property of your view controller.
  • Added viewOrderingStrategy property to HeroTransition which allow you to customize which view controller should be inserted first during the transition.

  • Added isUserInteractionEnabled property to HeroTransition which allow you to enable user interaction during the transition.

    • Note: by default, Hero will create snapshot of your views and use them for animation. They don't have the same event handler as your own views. So to enable user interaction, you have to apply .useNoSnapshot modifier to the views that you want to enabled user interaction. Also keep in mind that Hero can be in any state when you are handling user interaction. If you want to trigger a new transition, besure to call cancel(animated: false) or finish(animated: false) before starting the new transition.
  • The following methods on Hero is removed in favor of creating your custom HeroTransition object

    • func disableDefaultAnimationForNextTransition()
    • func setDefaultAnimationForNextTransition(_ animation: HeroDefaultAnimationType)
    • func setContainerColorForNextTransition(_ color: UIColor?)

Bug fixes:

  • fix the ghosting effect where the source view and target view animates at different rate
  • fix tab bar crashes and inconsistency when tapping too fast.

Future Roadmap:

  1. Custom snapshot view
  2. Masking support

0.3.6

7 years ago

Fix #148

0.3.5

7 years ago
  • fix a compilation bug with manual install because UIKit not imported in one file.
  • fix .selectedBy animations type not working

0.3.4

7 years ago
  • added three new string properties to set defaultAnimation

    • heroModalAnimationTypeString
    • heroNavigationAnimationTypeString
    • heroTabBarAnimationTypeString
  • new string parser that will give some error feedback

  • fix speed different bug for interaction transition #132

  • other small bug fixes.

0.3.3

7 years ago
  • added "contentsRect" & "contentsScale" animation support
  • fix a collection view ghosting effect bug #97