Clean, versatile pull gesture for iOS perfectionists. Comes with pull-to-create and pull-to-refresh.
Objective-C Ruby
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
Demo Project.xcodeproj
Demo Project

Pull to create / pull to refresh


MOOPullGesture implements pull gestures on table views through a UIGestureRecognizer subclass. Built to be extensible, MOOPullGesture comes with pull-to-create and pull-to-refresh.

MOOPullGesture contains MOOPullGestureRecognizer, which tracks a table view's scrolling and communicates updates to a trigger view through a simple protocol, MOOTriggerView.


The Demo Project folder contains working examples of pull-to-create and pull-to-refresh.


Please see PullToCreateViewController.m and PullToCreateDelegate.m. Pay special attention to the UIScrollViewDelegate methods on the delegate--it's important to forward those.


Take a look at PullToRefreshViewController.m.


###First: Clone into a submodule

In your project's folder, type:

git submodule add git://

A submodule allows your repository to contain a clone of an external project. If you don't want a submodule, use:

git clone git://

###Next: Add classes

Drag MOOPullGesture/ into your Xcode project's file browser.

Note: An options dialog will pop up. If you're using MOOPullGesture as a submodule, you should uncheck "Copy items into destination group's folder (if needed)."

###Then: Add QuartzCore.framework

QuartzCore.framework installation

With your application's target selected in the navigator, click on the "Build Phases" tab. Under "Link Binary With Libraries," click the "+" button and add QuartzCore.framework.

###Finally: Import the headers

#import "MOOPullGestureRecognizer.h"

...and a MOOTriggerView, either MOOCreateView.h or MOORefreshView.h

###Later: Update to the latest version

cd into the MOOPullGesture directory and run:

git pull


Inspired by Pier-Olivier Thibault's PHRefreshTriggerView, Clear's pull-to-create, and Twitter's pull-to-refresh.