Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/simplisticated/Sensitive

Special way to work with gestures in iOS
https://github.com/simplisticated/Sensitive

gesture gesture-recognizer simplify swift uigesturerecognizer

Last synced: 17 days ago
JSON representation

Special way to work with gestures in iOS

Awesome Lists containing this project

README

        


Sensitive




## At a Glance

`Sensitive` is a library that simplifies work with gestures in iOS. Forget about target/action pattern of primitive `UIGestureRecognizer`. With `Sensitive` you can call `onTap`, `onPinch`, `onSwipe` on any `UIView` instance and implement handler for the gesture. That's all that you should know to start. For details, see [Usage](#usage) section.

## How To Get Started

- Copy content of `Source` folder to your project.

or

- Use `Sensitive` cocoapod.

## Requirements

* iOS 9.0 and later
* Xcode 9.0 and later
* Swift 4.1 or later

## Usage

### Adding Gesture Recognizers to View

All gestures are available via special variables that you can call on any `UIView` instance. Examples:

```swift
view.onTap
.configure(with: { (gestureRecognizer) in
// Configure `UITapGestureRecognizer` instance
gestureRecognizer.numberOfTapsRequired = 2
})
.handle { (gestureRecognizer) in
// Handle tap on view
gestureRecognizer.view!.backgroundColor = .green
}

view.onSwipe
.configure(with: { (gestureRecognizer) in
// Configure `UISwipeGestureRecognizer` instance
gestureRecognizer.direction = .left
})
.handle { (gestureRecognizer) in
// Handle tap on view
gestureRecognizer.view!.backgroundColor = .green
}
```

Full list of available gestures:

- `onTap`
- `onLongPress`
- `onPan`
- `onPinch`
- `onRotation`
- `onSwipe`
- `onScreenEdgePan`

### Simultaneous Recognition

If you need few gestures to work together on the same view, you can also use `recognizeSimultaneously` method:

```swift
view.onTap
.handle { (gestureRecognizer) in
// Your implementation here...
}
.recognizeSimultaneously(true)

view.onPinch
.handle { (gestureRecognizer) in
// Your implementation here...
}
.recognizeSimultaneously(true)
```

## License

`Sensitive` is available under the MIT license. See the [LICENSE](./LICENSE) file for more info.