Module: ProMotion::Menu::Transition
- Included in:
- Drawer
- Defined in:
- lib/ProMotion/menu/transition.rb
Constant Summary collapse
- VISUAL_STATES =
{ # Creates a slide and scale visual state block that gives an experience # similar to Mailbox.app. It scales from 90% to 100%, and translates 50 # pixels in the x direction. In addition, it also sets alpha from 0.0 to 1.0. slide_and_scale: MMDrawerVisualState., # Creates a slide visual state block that gives the user an experience that # slides at the same speed of the center view controller during animation. # This is equal to calling parallaxVisualStateBlockWithParallaxFactor: with # a parallax factor of 1.0. This is similar to the menu in Spotify's app. slide: MMDrawerVisualState., # Creates a parallax experience that slides the side drawer view controller # at a different rate than the center view controller during animation. For # every parallaxFactor of points moved by the center view controller, the side # drawer view controller will move 1 point. Passing in 1.0 is the equivalent # of a applying a sliding animation, while passing in 'MAX_FLOAT' is the equivalent # of having no animation at all. parallax: MMDrawerVisualState.parallaxVisualStateBlockWithParallaxFactor(3), # Creates a swinging door visual state block that gives the user an experience that # animates the drawer in along the hinge. swinging_door: MMDrawerVisualState.swingingDoorVisualStateBlock }
Instance Method Summary collapse
Instance Method Details
#mask_for_transition(visual_block) ⇒ Object
36 37 38 39 40 41 42 43 44 45 |
# File 'lib/ProMotion/menu/transition.rb', line 36 def mask_for_transition(visual_block) unless visual_block.nil? if visual_block.include? "parallax" parallax_factor = visual_block.include?("_") ? visual_block.split("_")[1].to_i : 3 visual_state = MMDrawerVisualState.parallaxVisualStateBlockWithParallaxFactor(parallax_factor) end end visual_state ||= VISUAL_STATES[visual_block] visual_state end |
#transition_animation=(visual_block) ⇒ Object
29 30 31 32 33 34 |
# File 'lib/ProMotion/menu/transition.rb', line 29 def transition_animation=(visual_block) # Parallax requires a parallax_factor. Set it by passing the visual_block # block in with underscore parallax_factor attached to the end. i.e. # transition_animation = :parallax_6 for parallax_factor 6. self.setDrawerVisualStateBlock(mask_for_transition(visual_block)) end |