Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Design transition animations in Interface Builder #19

Closed
6 tasks done
JakeLin opened this issue Dec 29, 2015 · 10 comments
Closed
6 tasks done

Design transition animations in Interface Builder #19

JakeLin opened this issue Dec 29, 2015 · 10 comments
Milestone

Comments

@JakeLin
Copy link
Member

JakeLin commented Dec 29, 2015

Not only system built-in transitions, more custom transitions support.

  • AnimatableNavigationController to support custom transition animations for Push and Pop
  • AnimatableViewController to support custom transition animations for Present and Dismiss
  • AnimatableTableViewController to support custom transition animations for Present and Dismiss
  • Present***Segue to support custom transition animations for Present and Dismiss
  • ***InteractiveAnimator to support gesture to Pop or Dismiss VC. e.g. Pan, ScreenEdgePan and Pinch.
  • More custom animations.
@JakeLin JakeLin modified the milestones: v1.2, v2 Feb 13, 2016
@tbaranes
Copy link
Member

Do you have any preferences about which transitions should be implemented or examples of the results expected?

@lexrus
Copy link
Member

lexrus commented Feb 14, 2016

Some concepts:
https://github.com/entotsu/TKSubmitTransition
https://github.com/NewAmsterdamLabs/ZOZolaZoomTransition
https://github.com/AlvaroFranco/AFBlurSegue

I think image zooming segue is very useful in most Apps. And it's handy to dismiss it with swap like Jake said in #20 .

@tbaranes
Copy link
Member

Other list of concepts: http://transitiontreasury.com

@lexrus
Copy link
Member

lexrus commented Feb 14, 2016

@JakeLin
Copy link
Member Author

JakeLin commented Feb 15, 2016

First thing, we need to setup an architecture for that. I got three ideas to achieve that.

  1. An animator conforms to UIViewControllerAnimatedTransitioning and drag NSObject into a UINavigationController on IB (on top of the Controller), set that NSObject to that animator, set that navigation controller's delegate to it. Then all transitions within that navigation controller will use the animation specified in that animator.
  2. Add two properties into AnimatableViewController like transitOutAnimation and transitInAnimation, let AnimatableViewController conform to UIViewControllerAnimatedTransitioning and pick up the animation according to those two properties.
  3. Subclass UISegue for different transition animations. e.g. FadeInOutPushSegue for fade in when push and fade out when pop. FadeInOutPresentSegue for fade in when present and fade out when dismiss.

I am not sure will they work or not, need to create spike for them, I prefer the option 3 because when the user connect the segue they can select the predefined transition for the segue.

When we have this architecture, we can refer to a lot of nice implementation on Github to add them on bit by bit.

Those two as I mention in the roadmap https://github.com/ColinEberhardt/VCTransitionsLibrary and http://transitiontreasury.com/ I would like to start with. You guys ones are all very good as well.

Any feedback is welcome. And I go lunch, very hungry 🍚

@tbaranes
Copy link
Member

I definitely prefer the option 3. Seems to be the easiest to use: just set a custom segue, and you are done.

Should we also think about a way to use them programatically? The disadvantage of option 3 is that we can't use it outside of a storyboard.

@JakeLin
Copy link
Member Author

JakeLin commented Feb 24, 2016

@tbaranes , @lexrus Please have a look at #110 when you have time, I have added a checklist above for this story. I am working on AnimatableViewController and AnimatableTableViewController at that moment. Please let me know if you have any questions, thanks.

@tbaranes to support custom animations programmatically, we can provide a set of custom Animators, you can find them in #110 as the example. The users can still use the way Apple provides for custom transitions, or just use our AnimatableNavigationController or Push**Segue in IB.

@JakeLin JakeLin changed the title More transitions for segue Design transition animations in Interface Builder Feb 27, 2016
This was referenced Feb 29, 2016
@JakeLin
Copy link
Member Author

JakeLin commented Mar 3, 2016

I have removed "Push***Segue to support custom transition animations for Push and Pop" because the transition animation should be consistent in the same NavigationController. And we already support the custom transition in AnimatableNavigationController.

And also added "***InteractiveAnimator to support gesture to Pop or Dismiss VC. e.g. Pan, ScreenEdgePan and Pinch." item.

@tbaranes
Copy link
Member

tbaranes commented Mar 3, 2016

Awesome work @JakeLin 👍

@JakeLin
Copy link
Member Author

JakeLin commented Mar 20, 2016

Release 2.0 is out first. More transition tasks are in

More interactive animators/controllers
More transition animators/animation controllers

@JakeLin JakeLin closed this as completed Mar 20, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants