Swipe Gesture Recognizer is the one of the important gesture for the iOS users. It's really easy to implement, here we will show implementation to swipe gesture with an example project.
In this example project we are going to swipe image to left, right, up and down.
Pinch Gesture Recognizer - UIPinchGestureRecognizer
Pan Gesture Recognizer - UIPanGestureRecognizer
Long Press Gesture - UILongPressGestureRecognizer
UIRotationGestureRecognizer - Rotate Image View swift
Next open the ViewController.swift file and add the imageView as follow.
Next add imageView as sub view and give the auto layout constraints. Add the following code in viewDidLoad() method:
Next add swipeGesture to the imageView. Add the following code to the end of viewDidLoad() method:
The isUserInteractionEnabled property of the view is set to true. Image views and labels set this property to false by default.
Finally add the action for the swipe gesture in all directions:
Run the project, we will see an image. swipe and test it works as follow:
Download sample project with example :
In this example project we are going to swipe image to left, right, up and down.
Other Gestures in iOS:
Single Tap & Double Tap Gesture - UITapGestureRecognizerPinch Gesture Recognizer - UIPinchGestureRecognizer
Pan Gesture Recognizer - UIPanGestureRecognizer
Long Press Gesture - UILongPressGestureRecognizer
UIRotationGestureRecognizer - Rotate Image View swift
Getting Started:
Firstly create new Xcode project and save it with 'SwipeGesture'.Next open the ViewController.swift file and add the imageView as follow.
Adding ImageView:
First create imageView property as follow:let imageView = UIImageView()
Next add imageView as sub view and give the auto layout constraints. Add the following code in viewDidLoad() method:
imageView.translatesAutoresizingMaskIntoConstraints = false imageView.image = UIImage(named: "cat") imageView.contentMode = .scaleAspectFill imageView.clipsToBounds = true view.addSubview(imageView) imageView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true imageView.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true imageView.widthAnchor.constraint(equalTo: view.widthAnchor, multiplier: 0.6).isActive = true imageView.heightAnchor.constraint(equalTo: imageView.widthAnchor, multiplier: 1).isActive = true
Adding Swipe Gesture:
First create an instance to UISwipeGestureRecognizer() as follow:var swipeGesture = UISwipeGestureRecognizer()
Next add swipeGesture to the imageView. Add the following code to the end of viewDidLoad() method:
let directions: [UISwipeGestureRecognizerDirection] = [.up, .down, .right, .left] for direction in directions { swipeGesture = UISwipeGestureRecognizer(target: self, action: #selector(self.swipwView(_:))) imageView.addGestureRecognizer(swipeGesture) swipeGesture.direction = direction imageView.isUserInteractionEnabled = true imageView.isMultipleTouchEnabled = true }
The isUserInteractionEnabled property of the view is set to true. Image views and labels set this property to false by default.
Finally add the action for the swipe gesture in all directions:
@objc func swipwView(_ sender : UISwipeGestureRecognizer){ UIView.animate(withDuration: 1.0) { if sender.direction == .right { // Swipe right action self.imageView.frame = CGRect(x: self.view.frame.size.width - self.imageView.frame.size.width, y: self.imageView.frame.origin.y , width: self.imageView.frame.size.width, height: self.imageView.frame.size.height) }else if sender.direction == .left{ // Swipe left action self.imageView.frame = CGRect(x: 0, y: self.imageView.frame.origin.y , width: self.imageView.frame.size.width, height: self.imageView.frame.size.height) }else if sender.direction == .up{ // Swipe up action self.imageView.frame = CGRect(x: self.view.frame.size.width - self.imageView.frame.size.width, y: 0 , width: self.imageView.frame.size.width, height: self.imageView.frame.size.height) }else if sender.direction == .down{ // Swipe down action self.imageView.frame = CGRect(x: self.view.frame.size.width - self.imageView.frame.size.width, y: self.view.frame.size.height - self.imageView.frame.height , width: self.imageView.frame.size.width, height: self.imageView.frame.size.height) } self.imageView.layoutIfNeeded() self.imageView.setNeedsDisplay() } }
Run the project, we will see an image. swipe and test it works as follow:
Download sample project with example :
No comments:
Post a Comment