Thursday, 21 December 2017

Gersture_Recognizer Demo

1) Pinch Gesture:

@IBOutlet var view_pinch: UIView!
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let pinch_view : UIPinchGestureRecognizer = UIPinchGestureRecognizer(target: self, action: #selector(pinch_gesture(_:)))
        self.view_pinch.addGestureRecognizer(pinch_view)
        self.view_pinch.isUserInteractionEnabled = true

        // Do any additional setup after loading the view.
    }
    
    func pinch_gesture(_ pinchGesture : UIPinchGestureRecognizer) {

        self.view_pinch.transform = self.view_pinch.transform.scaledBy(x: pinchGesture.scale, y: pinchGesture.scale)    
        pinchGesture.scale = 1.0


    }

2) Swipe Gesture:

@IBOutlet var view_swipe: UIView!
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let left_swipe = UISwipeGestureRecognizer(target: self, action: #selector(slide_Left_gesture(_:)))
        left_swipe.direction = UISwipeGestureRecognizerDirection.left
        view_swipe.addGestureRecognizer(left_swipe)
        
        let right_swipe = UISwipeGestureRecognizer(target: self, action: #selector(slide_right_gesture(_:)))
        right_swipe.direction = UISwipeGestureRecognizerDirection.right
        view_swipe.addGestureRecognizer(right_swipe)

        // Do any additional setup after loading the view.
    }

func slide_Left_gesture(_ swipegesture : UISwipeGestureRecognizer) {
        self.view_swipe.backgroundColor = UIColor.blue
    }
    
    func slide_right_gesture(_ swipegesture : UISwipeGestureRecognizer) {
        self.view_swipe.backgroundColor = UIColor.green
    }

3) Tap Gesture:

@IBOutlet var view_gesture: UIView!
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let single_tap_ges = UITapGestureRecognizer(target: self, action: #selector(singletapGesture(_:)))
        view_gesture.addGestureRecognizer(single_tap_ges)
        
        let double_tap_ges = UITapGestureRecognizer(target: self, action: #selector(doubletapGesture(_:)))
        
        double_tap_ges.numberOfTapsRequired = 2
        view_gesture.addGestureRecognizer(double_tap_ges)
        
        single_tap_ges.require(toFail: double_tap_ges)
        // Do any additional setup after loading the view, typically from a nib.
    }

func doubletapGesture(_ tapgestureRecognizer : UITapGestureRecognizer) {
        self.view_gesture.frame = CGRect(x: self.view_gesture.frame.origin.x, y: self.view_gesture.frame.origin.y, width: 250, height: 250)
        self.view_gesture.backgroundColor = UIColor.blue
    }
    
    func singletapGesture(_ tapgestureRecognizer : UITapGestureRecognizer) {
        if self.view_gesture.backgroundColor == UIColor.black {
            self.view_gesture.backgroundColor = UIColor.brown
            self.view_gesture.frame = CGRect(x: self.view_gesture.frame.origin.x, y: self.view_gesture.frame.origin.y, width: 100, height: 100)
        }
        else {
            self.view_gesture.backgroundColor = UIColor.black
            self.view_gesture.frame = CGRect(x: self.view_gesture.frame.origin.x, y: self.view_gesture.frame.origin.y, width: 50, height: 50)
        }
    }

4) Pan Gesture:

@IBOutlet var view_pan: UIView!
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let pan_view = UIPanGestureRecognizer(target: self, action: #selector(pan_Gesture(_:)))
        view_pan.addGestureRecognizer(pan_view)

        // Do any additional setup after loading the view.
    }

func pan_Gesture(_ panGesture : UIPanGestureRecognizer) {
        let panTouch : CGPoint = panGesture.location(in: self.view)
        self.view_pan.center = panTouch
    }

5) Rotation Gesture:

@IBOutlet var view_rotation: UIView!
    override func viewDidLoad() {
        super.viewDidLoad()

        let rotate_view : UIRotationGestureRecognizer = UIRotationGestureRecognizer(target: self, action: #selector(rotation_Gesture(_:)))
        self.view_rotation.addGestureRecognizer(rotate_view)

        // Do any additional setup after loading the view.
    }
    
    func rotation_Gesture(_ rotationGesture : UIRotationGestureRecognizer) {
        self.view_rotation.transform = self.view_rotation.transform.rotated(by: rotationGesture.rotation)
        rotationGesture.rotation = 0.0
    }

=> If user can create multiple gesture, may be this code is useful. Like,

@IBOutlet var view_mix: UIView!
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let rotate_view : UIRotationGestureRecognizer = UIRotationGestureRecognizer(target: self, action: #selector(rotation_Gesture(_:)))
        self.view_mix.addGestureRecognizer(rotate_view)
        
        let pinch_view : UIPinchGestureRecognizer = UIPinchGestureRecognizer(target: self, action: #selector(pinch_gesture(_:)))
        self.view_mix.addGestureRecognizer(pinch_view)
        
        let left_swipe = UISwipeGestureRecognizer(target: self, action: #selector(swipe_Gesture(_:)))
        let right_swipe = UISwipeGestureRecognizer(target: self, action: #selector(swipe_Gesture(_:)))
        let up_swipe = UISwipeGestureRecognizer(target: self, action: #selector(swipe_Gesture(_:)))
        let down_swipe = UISwipeGestureRecognizer(target: self, action: #selector(swipe_Gesture(_:)))
        
        left_swipe.direction = UISwipeGestureRecognizerDirection.left
        right_swipe.direction = UISwipeGestureRecognizerDirection.right
        up_swipe.direction = UISwipeGestureRecognizerDirection.up
        down_swipe.direction = UISwipeGestureRecognizerDirection.down

        self.view_mix.addGestureRecognizer(left_swipe)
        self.view_mix.addGestureRecognizer(right_swipe)
        self.view_mix.addGestureRecognizer(up_swipe)
        self.view_mix.addGestureRecognizer(down_swipe)
        // Do any additional setup after loading the view.
    }
    
    func rotation_Gesture(_ rotationGesture : UIRotationGestureRecognizer) {
        self.view_mix.transform = self.view_mix.transform.rotated(by: rotationGesture.rotation)
        rotationGesture.rotation = 0.0
    }
    
    func pinch_gesture(_ pinchGesture : UIPinchGestureRecognizer) {
        self.view_mix.transform = self.view_mix.transform.scaledBy(x: pinchGesture.scale, y: pinchGesture.scale);
        
        pinchGesture.scale = 1.0;
    }
    
    func swipe_Gesture(_ swipeGesture : UISwipeGestureRecognizer) {
        if (swipeGesture.direction == .left) {
            self.view_mix.backgroundColor = UIColor.blue
        }
        if (swipeGesture.direction == .right) {
            self.view_mix.backgroundColor = UIColor.brown
        }
        if (swipeGesture.direction == .up) {
            self.view_mix.backgroundColor = UIColor.cyan
        }
        if (swipeGesture.direction == .down) {
            self.view_mix.backgroundColor = UIColor.green
        }
    }

Thank you...

No comments:

Post a Comment