|
1 | 1 | <img src="https://cdn.rawgit.com/lkzhao/Hero/427d5f2/Resources/Hero.svg" width="388"/>
|
2 | 2 |
|
3 |
| -**Hero** is a library for building iOS view controller transitions. It provides a declarative layer on top of the UIKit's cumbersome transition APIs. Making custom transitions an easy task for developers. |
| 3 | +**Hero** is a library for building iOS view controller transitions. It provides a declarative layer on top of the UIKit's cumbersome transition APIs—making custom transitions an easy task for developers. |
4 | 4 |
|
5 | 5 | [](https://github.com/Carthage/Carthage)
|
6 | 6 | [](http://cocoapods.org/pods/Hero)
|
|
14 | 14 | <img src="https://cdn.rawgit.com/lkzhao/Hero/ebb3f2c/Resources/features.svg"/>
|
15 | 15 | <img src="https://cdn.rawgit.com/lkzhao/Hero/ebb3f2c/Resources/features2.svg"/>
|
16 | 16 |
|
17 |
| -Hero is similar to Keynote's **Magic Move**. It checks the `heroID` property on all source and destination views. Every matched view pairs are then automatically transitioned from its old state to its new state. |
| 17 | +Hero is similar to Keynote's **Magic Move**. It checks the `heroID` property on all source and destination views. Every matched view pair is then automatically transitioned from its old state to its new state. |
18 | 18 |
|
19 | 19 | Hero can also construct animations for unmatched views. It is easy to define these animations via the `heroModifiers` property. Hero will run these animations alongside the **Magic Move** animations. All of these animations can be **interactively controlled** by user gestures.
|
20 | 20 |
|
21 |
| -At view controller level, Hero provides several template transitions that you can set through `heroModalAnimationType`, `heroNavigationAnimationType`, & `heroTabBarAnimationType`. These can be used as the foundation of your custom transitions. Combine with `heroID` & `heroModifiers` to make your unique transitions. |
| 21 | +At view controller level, Hero provides several template transitions that you can set through `heroModalAnimationType`, `heroNavigationAnimationType`, and `heroTabBarAnimationType`. These can be used as the foundation of your custom transitions. Combine with `heroID` & `heroModifiers` to make your own unique transitions. |
22 | 22 |
|
23 | 23 | <img src="https://cdn.rawgit.com/lkzhao/Hero/ebb3f2c/Resources/defaultAnimations.svg"/>
|
24 | 24 | <img src="https://cdn.rawgit.com/lkzhao/Hero/ebb3f2c/Resources/defaultAnimations2.svg"/>
|
25 | 25 |
|
26 |
| -By default, Hero provides **dynamic duration** based on the [Material Design Motion Guide](https://material.io/guidelines/motion/duration-easing.html). The duration is determined by the distance & size change. It save you the hassle while providing consistent and delightful animations. |
| 26 | +By default, Hero provides **dynamic duration** based on the [Material Design Motion Guide](https://material.io/guidelines/motion/duration-easing.html). Duration is automatically determined by changes to distance and size—saving you the hassle, while providing consistent and delightful animations. |
27 | 27 |
|
28 |
| -Hero does not make any assumption about how the view is built or structured. It will not modify any of your views' states other than hiding them during the animation. This makes it work with **Auto Layout**, **programmatic layout**, **UICollectionView** (without modifying its layout object), **UITableView**, **UINavigationController**, **UITabBarController**, etc... |
| 28 | +Hero doesn't make any assumptions about how the view is built or structured. It won't modify any of your views' states other than hiding them during the animation. This makes it work with **Auto Layout**, **programmatic layout**, **UICollectionView** (without modifying its layout object), **UITableView**, **UINavigationController**, **UITabBarController**, etc... |
29 | 29 |
|
30 | 30 |
|
31 | 31 | ## Example Gallery
|
@@ -99,11 +99,11 @@ Make sure that you have also enabled `isHeroEnabled` on the navigation controlle
|
99 | 99 |
|
100 | 100 | #### Views being covered by another matched view during the transition
|
101 | 101 |
|
102 |
| -Matched views use global coordinate space while unmatched views use local coordinate space by default. Local coordinate spaced views might be covered by other global coordinate spaced views. To solve this, use `useGlobalCoordinateSpace` modifier on the views being covered. Checkout [Coordinate Space Wiki page](https://github.com/lkzhao/Hero/wiki/Coordinate-Space) for details. |
| 102 | +Matched views use global coordinate space while unmatched views use local coordinate space by default. Local coordinate spaced views might be covered by other global coordinate spaced views. To solve this, use the `useGlobalCoordinateSpace` modifier on the views being covered. Checkout [Coordinate Space Wiki page](https://github.com/lkzhao/Hero/wiki/Coordinate-Space) for details. |
103 | 103 |
|
104 | 104 | #### Weird behavior with UIVisualEffectView
|
105 | 105 |
|
106 |
| -UIVisualEffectView is quite hard to animate due to the private implementation and incompatibility with `snapshotAfterScreenUpdate` and some Core Animation APIs. We are trying to get these solved as much as we can. Currently, as of 0.3.2, only unmatched UIVisualEffectView with noninteractive `.fade` animation is supported. |
| 106 | +UIVisualEffectView is quite hard to animate due to its private implementation and incompatibility with `snapshotAfterScreenUpdate` and some Core Animation APIs. We are trying to get these solved as much as we can. Currently, as of 0.3.2, only unmatched UIVisualEffectView with noninteractive `.fade` animation is supported. |
107 | 107 |
|
108 | 108 | #### Push animation is shown along side my custom animation
|
109 | 109 |
|
|
0 commit comments