Motion-Swipe for RubyMotion

alt tag

Trying to add a Google inbox like floating button gem for RubyMotion. PRs for fixes, refactors and features accepted!

This is a wrapper around gizmoboy7's VCFloatingActionButton written in obj-c. We've included some of the fixes in the issues and pull requests from his repo and have made some customizations here too, so it is diverged and will likely stay that way. See his source: https://github.com/gizmoboy7/VCFloatingActionButton

We'd like to dedicate this gem to @andrewhavens, may he eschew iOS guidelines in the future.

setup needed for storyboard file usage

You need to move the .xib file resources into your app's resources folder. RubyMotion will compile this into a .nib file, and all should be well. If you know how to avoid having to do this step, please let us know!!!

create a floating action button view


# If you are not using a nav bar, you can ignore these values.
nav_bar_height = self.navigation_controller.navigationBar.frame.size.height
nav_bar = self.navigation_controller.navigationBar
scroll_view = UITableView.new  # haven't played with the scroll view option myself

@addButton = MotionFloatingActionButton.new(
      CGRectMake(device.width*3/4, device.height/2+nav_bar_height, device.width*1/4, device.height/2),
      normal_image: rmq.image.resource('icons/plus'),
      pressed_image: rmq.image.resource('icons/plus'),
      scroll_view: scroll_view, #optional
      navigation_bar: nav_bar, #optional
      delegate: self
    )

# Older way but should still work
@addButton = MotionFloatingActionButton.build({
  floating_frame: CGRectMake(device.width*3/4, device.height/2, device.width*1/4, device.height/2),
  normal_image: rmq.image.resource('icons/plus'), # or UIImage.imageNamed('plus')
  pressed_image: rmq.image.resource('icons/plus-pressed'), # or UIImage.imageNamed('plus-pressed')
  delegate: self
})  

@addButton.imageArray =  ["Facebook", "Twitter", "Google Plus", "Linked in"]
@addButton.labelArray = ["Facebook", "Twitter", "Google Plus", "Linked in"]

rmq.append(@addButton)

do something after a menu item is pressed

def didSelectMenuOptionAtIndex(index)
  puts index
end