Skip to content

joseria/JAGestureRecognizerExamples

Repository files navigation

JAGestureRecognizerExamples

##Overview

UIGestureRecognizer Examples written in Swift. These cover pan, swipe, tap, long press, pinch, and rotate gestures.

##Example Project An example project is provided that requires IOS8 and XCode 7.0. When using gestures, you must first instantiate each recognizer with a target/action. Then you can add this recognizer to a view. Below are examples from the sample project that demonstrates how each UIGestureRecognizer is used.

###UIPanGestureRecognizer

let panGestureRecognizer = UIPanGestureRecognizer(target:self, action: "panHandler:");
imageView.addGestureRecognizer(panGestureRecognizer);

// Pan gesture handler
func panHandler(recognizer:UIPanGestureRecognizer) {
    let translation = recognizer.translationInView(view);
    recognizer.view!.center = CGPoint(x: recognizer.view!.center.x + translation.x, y: recognizer.view!.center.y + translation.y);
    recognizer.setTranslation(CGPointZero, inView: view);
}

###UISwipeGestureRecognizer

// Swipe gestures have a specified direction that the gesture listens to. You can add multiple swipe gestures that can be
// handled in one common handler. 
let rightSwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: "swipeHandler:");
rightSwipeGestureRecognizer.direction = UISwipeGestureRecognizerDirection.Right;

let leftSwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: "swipeHandler:");
leftSwipeGestureRecognizer.direction = UISwipeGestureRecognizerDirection.Left;

imageView.addGestureRecognizer(rightSwipeGestureRecognizer);
imageView.addGestureRecognizer(leftSwipeGestureRecognizer);

// Swipe gesture handler
func swipeHandler(recognizer:UISwipeGestureRecognizer) {
    switch recognizer.direction {
    case UISwipeGestureRecognizerDirection.Left:
        if imageView.alpha > 0.2 {
            imageView.alpha *= kALPHA_FACTOR;
        }
        println("Swipe Left");
    case UISwipeGestureRecognizerDirection.Right:
        if imageView.alpha < 1.0 {
            imageView.alpha /= kALPHA_FACTOR;
        }
        println("Swipe Right");
    default:
        println("Undefined swipe direction");
    }
}

###UITapGestureRecognizer

let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: "tapHandler:");
imageView.addGestureRecognizer(tapGestureRecognizer);

// Tap gesture handler
func tapHandler(recognizer:UITapGestureRecognizer) {
    imageView.center = view.center;
    imageView.transform = CGAffineTransformIdentity;
    imageView.image = UIImage(named: "earth.png");
    imageView.alpha = 1.0;
}

###UILongPressGestureRecognizer

let longPressGestureRecognizer = UILongPressGestureRecognizer(target: self, action: "longPressHandler:");
imageView.addGestureRecognizer(longPressGestureRecognizer);

// Long press gesture handler
func longPressHandler(recognizer:UILongPressGestureRecognizer) {
    if recognizer.state == UIGestureRecognizerState.Began {
        if earthBW {
            imageView.image = UIImage(named: "earth.png");
        } else {
            imageView.image = UIImage(named: "earthRipple.png");
        }
        earthBW = !earthBW;
    }
}

###UIPinchGestureRecognizer

let pinchGestureRecognizer = UIPinchGestureRecognizer(target: self, action: "pinchHandler:");
imageView.addGestureRecognizer(pinchGestureRecognizer);

// Pinch gesture handler
func pinchHandler(recognizer:UIPinchGestureRecognizer) {
    recognizer.view!.transform = CGAffineTransformScale(recognizer.view!.transform, recognizer.scale, recognizer.scale);
    // Reset the scale factor
    recognizer.scale = 1;
}

###UIRotationGestureRecognizer

let rotateGestureRecognizer = UIRotationGestureRecognizer(target: self, action: "rotateHandler:");
imageView.addGestureRecognizer(rotateGestureRecognizer);

// Rotate gesture handler
func rotateHandler(recognizer:UIRotationGestureRecognizer) {
    recognizer.view!.transform = CGAffineTransformRotate(recognizer.view!.transform, recognizer.rotation);
    // Reset the rotation
    recognizer.rotation = 0;
}

##Creator Jose Alvarez

##License JAGestureRecognizerExamples is available under the MIT license. See the LICENSE file for more info.

About

UIGestureRecognizer Examples in Swift (Pan, Swipe, Tap, Long Press, Pinch, and Rotate)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages