Skip to content

krupanshu/Sensitive

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sensitive

Sensitive

Sensitive library is a new way to work with gestures in iOS. Approach is very similar to Android's onClick handler for View subclasses. Forget about targets and actions of primitive UIGestureRecognizers. Instead of that, you can simply use blocks with methods like onTap, onPinch, onSwipe, etc. Each UIView object includes those methods via special extension. That's all that you should know to start. For details, see Usage section.

##How To Get Started

  • Copy content of Source folder to your project.

or

  • Use Sensitive cocoapod

Requirements

  • iOS 8 and later
  • Xcode 7 and later

Usage

let view = UIView()


/*
 * Add tap gesture recognizer with configuration block to view.
 */

view.onTap({ (tapGestureRecognizer) -> Void in
    // Handle tap on view
    view.backgroundColor = .greenColor()
}) { (tapGestureRecognizer) -> Void in
    // Configure gesture recognizer
    tapGestureRecognizer.numberOfTouchesRequired = 1
    tapGestureRecognizer.numberOfTapsRequired = 2
}


/*
 * Add tap gesture recognizer without configuration block to view.
 */

view.onTap { (tapGestureRecognizer) -> Void in
    // Handle tap on view
    view.backgroundColor = .greenColor()
}

/*
 * Add long press gesture recognizer with configuration block to view.
 */

view.onLongPress({ (longPressGestureRecognizer) -> Void in
    // Handle long press on view
    view.backgroundColor = .greenColor()
}) { (longPressGestureRecognizer) -> Void in
    // Configure gesture recognizer
    longPressGestureRecognizer.numberOfTouchesRequired = 1
}


/*
 * Add long press gesture recognizer without configuration block to view.
 */

view.onLongPress { (longPressGestureRecognizer) -> Void in
    // Handle tap on view
    view.backgroundColor = .greenColor()
}


/*
 * Add pan gesture recognizer with configuration block to view.
 */

view.onPan({ (panGestureRecognizer) -> Void in
    // Handle pan gesture on view here...
}) { (panGestureRecognizer) -> Void in
    // Configure pan gesture recognizer here...
}


/*
 * Add pan gesture recognizer without configuration block to view.
 */

view.onPan { (panGestureRecognizer) -> Void in
    // Handle pan gesture on view here...
}


/*
 * Add pinch gesture recognizer with configuration block to view.
 */

view.onPinch({ (pinchGestureRecognizer) -> Void in
    // Handle pinch gesture on view here...
}) { (pinchGestureRecognizer) -> Void in
    // Configure pinch gesture recognizer here...
}


/*
 * Add pinch gesture recognizer without configuration block to view.
 */

view.onPinch { (pinchGestureRecognizer) -> Void in
    // Handle pinch gesture on view here...
}


/*
 * Add rotation gesture recognizer with configuration block to view.
 */

view.onRotation({ (rotationGestureRecognizer) -> Void in
    // Handle rotation gesture on view here...
}) { (rotationGestureRecognizer) -> Void in
    // Configure rotation gesture recognizer here...
}


/*
 * Add rotation gesture recognizer without configuration block to view.
 */

view.onRotation { (rotationGestureRecognizer) -> Void in
    // Handle rotation gesture on view here...
}


/*
 * Add swipe gesture recognizer with configuration block to view.
 */

view.onSwipe({ (swipeGestureRecognizer) -> Void in
    // Handle swipe gesture on view here...
}) { (swipeGestureRecognizer) -> Void in
    // Configure swipe gesture recognizer here...
    swipeGestureRecognizer.direction = .Right
}


/*
 * Add swipe gesture recognizer without configuration block to view.
 */

view.onSwipe { (swipeGestureRecognizer) -> Void in
    // Handle swipe gesture on view here...
}


/*
 * Add screen edge pan gesture recognizer with configuration block to view.
 */

view.onScreenEdgePan({ (screenEdgePanGestureRecognizer) in
    // Handle screen edge pan gesture on view here...
}) { (screenEdgePanGestureRecognizer) in
    // Configure screen edge pan gesture recognizer here...
}


/*
 * Add screen edge pan gesture recognizer without configuration block to view.
 */

view.onScreenEdgePan { (screenEdgePanGestureRecognizer) in
    // Handle screen edge pan gesture on view here...
}

License

Sensitive is available under the MIT license. See the LICENSE file for more info.

About

Fresh look at work with gestures in Swift.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 89.3%
  • Ruby 10.7%