কীভাবে সমস্ত 4 দিক সোয়াইপ চিনতে হয়


131

সোয়াইপ ইশারাটি নীচে এবং তারপরে ডানদিকে সনাক্ত করতে আমার সোয়াইপ ব্যবহার করা উচিত। তবে সুইফটে ইউআইএসওয়াইপজেক্টরআরগনাইজারের সঠিক দিকনির্দেশনা রয়েছে ... এবং আমি জানি না কীভাবে এটি অন্য দিকগুলি ব্যবহারের জন্য তৈরি করে ..

উত্তর:


324

UISwipeGestureRecognizerপ্রতিটি দিকনির্দেশের জন্য আপনার একটি থাকতে হবে। এটি কিছুটা অদ্ভুত কারণ UISwipeGestureRecognizer.directionসম্পত্তিটি একটি বিকল্প-স্টাইলের বিট মাস্ক, তবে প্রতিটি সনাক্তকারী কেবল একটি দিক পরিচালনা করতে পারে। আপনি চাইলে এগুলি সমস্তকে একই হ্যান্ডলারের কাছে প্রেরণ করতে এবং এটিকে এখানে বাছাই করতে বা বিভিন্ন হ্যান্ডলারে প্রেরণ করতে পারেন। এখানে একটি বাস্তবায়ন:

override func viewDidLoad() {
    super.viewDidLoad()

    let swipeRight = UISwipeGestureRecognizer(target: self, action: #selector(respondToSwipeGesture))
    swipeRight.direction = .right
    self.view.addGestureRecognizer(swipeRight)

    let swipeDown = UISwipeGestureRecognizer(target: self, action: #selector(respondToSwipeGesture))
    swipeDown.direction = .down
    self.view.addGestureRecognizer(swipeDown)
}

@objc func respondToSwipeGesture(gesture: UIGestureRecognizer) {

    if let swipeGesture = gesture as? UISwipeGestureRecognizer {

        switch swipeGesture.direction {
        case .right:
            print("Swiped right")
        case .down:
            print("Swiped down")
        case .left:
            print("Swiped left")
        case .up:
            print("Swiped up")
        default:
            break
        }
    }
}

সুইফট 3:

override func viewDidLoad() {
    super.viewDidLoad()

    let swipeRight = UISwipeGestureRecognizer(target: self, action: #selector(self.respondToSwipeGesture))
    swipeRight.direction = UISwipeGestureRecognizerDirection.right
    self.view.addGestureRecognizer(swipeRight)

    let swipeDown = UISwipeGestureRecognizer(target: self, action: #selector(self.respondToSwipeGesture))
    swipeDown.direction = UISwipeGestureRecognizerDirection.down
    self.view.addGestureRecognizer(swipeDown)
}

func respondToSwipeGesture(gesture: UIGestureRecognizer) {
    if let swipeGesture = gesture as? UISwipeGestureRecognizer {
        switch swipeGesture.direction {
        case UISwipeGestureRecognizerDirection.right:
            print("Swiped right")
        case UISwipeGestureRecognizerDirection.down:
            print("Swiped down")
        case UISwipeGestureRecognizerDirection.left:
            print("Swiped left")
        case UISwipeGestureRecognizerDirection.up:
            print("Swiped up")
        default:
            break
        }
    }
}

"প্রতিটি সনাক্তকারী কেবল একটি দিক পরিচালনা করতে পারে" - এটি সত্য নয়। দেখুন stackoverflow.com/questions/16184539/...
সের্গেই Skoblikov

3
"প্রতিটি স্বীকৃতিদানকারী কেবল একটি দিক পরিচালনা করতে পারে" - এটি স্যুইফ্টে সত্য এবং নির্দিষ্টটি অবজেক্টিভ-সিতে সত্য।
কিং-উইজার্ড

13
আপনাকে ect এর UISwipeGestureRecognizerDirectionসামনে যুক্ত করতে হবে না .DownswipeDown.direction = .Downযথেষ্ট পর্যাপ্ত হলে ব্যবহার করছি । মাত্র একটি টিপ =)
পল পিলেন

আমরা কি একসাথে আরও একই ভিউতে একই অঙ্গভঙ্গি সনাক্তকারী বস্তুটি যুক্ত করতে পারি? আমি চেষ্টা করেছি কিন্তু কাজ করি নি।
সর্বোচ্চ

3
আপনি যদি সের্গি স্কোব্লিক্ভসের অভিব্যক্তিটি দ্রুতগতিতে করেন তবে (কাজটি করে swipe.direction = [.Right,.Down,.Up,.Left] ), সনাক্তকারীকে এমনকি ডাকা হবে না, সম্ভবত এটি দ্রুতগতির একটি সমস্যা, তবে বর্তমানে এটি কার্যকর হয় না।
নাইট0ফ্রেড্রাগন

55

আমি এটির অবদানের মতো অনুভব করেছি, শেষ পর্যন্ত আরও মার্জিত দেখাচ্ছে:

func addSwipe() {
    let directions: [UISwipeGestureRecognizerDirection] = [.Right, .Left, .Up, .Down]
    for direction in directions {
        let gesture = UISwipeGestureRecognizer(target: self, action: Selector("handleSwipe:"))
        gesture.direction = direction
        self.addGestureRecognizer(gesture)
    }
}

func handleSwipe(sender: UISwipeGestureRecognizer) {
    print(sender.direction)
}

10
self.addGestureRecognizer(gesture)আমার জন্য একটি ত্রুটি ঘটায়। কি ঠিক ছিল self.view.addGestureRecognizer(gesture);
ahitt6345

1
@ ahitt6345 আমি আমার কোডটি একটি UIViewসাবক্লাসে ব্যবহার করছিলাম , তবে আপনি যদি একে একে থাকেন তবে আপনি একেবারে ঠিক আছেন UIViewController!
আলেকজান্দ্রে ক্যাসাগন

1
পরিষ্কার, আমার জন্য সেরা উত্তর।
ক্রিস্টোফার স্মিট

22

স্টোরিবোর্ড থেকে:

  1. আপনার দৃষ্টিতে চারটি সোয়াইপ অঙ্গভঙ্গি সনাক্তকারী যুক্ত করুন।
  2. অ্যাট্রিবিউট ইন্সপেক্টর থেকে লক্ষ্য নির্দেশের সাথে প্রতিটি সেট করুন। আপনি ডান, বাম, উপরে বা নীচে নির্বাচন করতে পারেন
  3. এক এক করে, সোয়াইপ অঙ্গভঙ্গি সনাক্তকারী নির্বাচন করুন, আপনার ভিউ কন্ট্রোলারে নিয়ন্ত্রণ + টানুন। নামটি সন্নিবেশ করুন (আসুন আমরা বামে অঙ্গভঙ্গি, ডানদিকের অঙ্গভঙ্গি, আপজেষ্টার এবং ডাউন জেস্টার বলি), সংযোগটি এতে পরিবর্তন করুন: ক্রিয়া করুন এবং এতে টাইপ করুন: ইউআইএসওয়াইপজেক্টরর সনাক্তকারী

আপনার ভিউকন্ট্রোলার থেকে:

@IBAction func rightGesture(sender: UISwipeGestureRecognizer) {
    print("Right")
}
@IBAction func leftGesture(sender: UISwipeGestureRecognizer) {
    print("Left")
}
@IBAction func upGesture(sender: UISwipeGestureRecognizer) {
    print("Up")
}

@IBAction func downGesture(sender: UISwipeGestureRecognizer) {
    print("Down")
}  

5
এই উত্তরের মাধ্যমে আপনাকে প্রচুর কোড লেখার দরকার নেই তবে আপনি স্টোরিবোর্ড এবং স্টোরিবোর্ড এবং আপনার কোডের মধ্যে সংযোগগুলি ব্যবহার করেন। বিকাশকারী যদি এইভাবে কাজ করতে পছন্দ করে তবে এই উত্তরটি আরও সহজ হতে পারে তবে যদি বিকাশকারী কোডিংয়ে আরও কাজ করা পছন্দ করেন তবে অবশ্যই প্রথম উত্তরটি সেরা।
ব্যবহারকারী 3099333

আমি একের পরিবর্তে 4 টি সোয়াইপ অঙ্গভঙ্গি ব্যবহার করেছি এবং প্রচুর কাজের বোঝা কোডিংয়ের পরিবর্তে স্টোরিবোর্ডে রয়েছে।
ব্যবহারকারী 3099333

9

দেখে মনে হচ্ছে জিনিসগুলি ইদানীং পরিবর্তিত হয়েছে। এক্সকোড 7.2 এ নিম্নলিখিত পদ্ধতির কাজ করে:

override func viewDidLoad() {
    super.viewDidLoad()

    let swipeGesture = UISwipeGestureRecognizer(target: self, action: "handleSwipe:")
    swipeGesture.direction = [.Down, .Up]
    self.view.addGestureRecognizer(swipeGesture)
}

func handleSwipe(sender: UISwipeGestureRecognizer) {
    print(sender.direction)
}

আইওএস 8.4 এবং 9.2 এবং 9.2 তে প্রকৃত ডিভাইসে সিমুলেটারে পরীক্ষিত।

বা, এখানে mlcollard এর কার্যকর এক্সটেনশন ব্যবহার করে :

let swipeGesture = UISwipeGestureRecognizer() {
    print("Gesture recognized !")
}

swipeGesture.direction = [.Down, .Up]
self.view.addGestureRecognizer(swipeGesture)

5
নির্বাচককে ডাকা যেতে পারে তবে প্রেরকের দিকটি ভুল। অন্য কথায়, যদি আপনার সোয়াইপের দিকটি না জানা দরকার তবে অন্যথায় না হলে এই পদ্ধতিরটি ঠিক।
রবার্ট গুমসন

আর কাজ করে না। সুইফ্ট 3-এ, প্রসঙ্গটি প্রথম [UISwipeGestureRecognizerDirection.right, .left, .up, .down]
ব্রেন্ট ফাস্ট

7

অ্যাপল সুইফ্ট সংস্করণ 3.1 - এক্সকোড সংস্করণ 8.3 (8E162)

আলেকজান্দ্রে ক্যাসাগেনের সহজ উপায়

let directions: [UISwipeGestureRecognizerDirection] = [.up, .down, .right, .left]
for direction in directions {
    let gesture = UISwipeGestureRecognizer(target: self, action: #selector(YourClassName.handleSwipe(gesture:)))
    gesture.direction = direction
    self.view?.addGestureRecognizer(gesture)   
}

func handleSwipe(gesture: UISwipeGestureRecognizer) {
    print(gesture.direction)
    switch gesture.direction {
    case UISwipeGestureRecognizerDirection.down:
        print("down swipe")
    case UISwipeGestureRecognizerDirection.up:
        print("up swipe")
    case UISwipeGestureRecognizerDirection.left:
        print("left swipe")
    case UISwipeGestureRecognizerDirection.right:
        print("right swipe")
    default:
        print("other swipe")
    }
}

1
এই নির্দিষ্ট বিল্ডটি দিয়ে আপনাকে defaults write com.apple.dt.xcode IDEPlaygroundDisableSimulatorAlternateFramebuffer -bool YESকিছু হার্ডওয়্যারে বাগ ফিক্স করার জন্য টার্মিনালে চালানো দরকার । এটি এক্সকোডের নতুন সংস্করণে ঠিক করা উচিত
সাইরেন্স

6

সুইফটে 4.2 এবং এক্সকোড 9.4.1 এ

আপনার শ্রেণিতে অ্যানিমেশন প্রতিনিধি, CAAnimationDelegate যুক্ত করুন

//Swipe gesture for left and right
let swipeFromRight = UISwipeGestureRecognizer(target: self, action: #selector(didSwipeLeft))
swipeFromRight.direction = UISwipeGestureRecognizerDirection.left
menuTransparentView.addGestureRecognizer(swipeFromRight)

let swipeFromLeft = UISwipeGestureRecognizer(target: self, action: #selector(didSwipeRight))
swipeFromLeft.direction = UISwipeGestureRecognizerDirection.right
menuTransparentView.addGestureRecognizer(swipeFromLeft)

//Swipe gesture selector function
@objc func didSwipeLeft(gesture: UIGestureRecognizer) {
    //We can add some animation also
    DispatchQueue.main.async(execute: {
            let animation = CATransition()
            animation.type = kCATransitionReveal
            animation.subtype = kCATransitionFromRight
            animation.duration = 0.5
            animation.delegate = self
            animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
            //Add this animation to your view
            self.transparentView.layer.add(animation, forKey: nil)
            self.transparentView.removeFromSuperview()//Remove or hide your view if requirement.
        })
}

//Swipe gesture selector function
@objc func didSwipeRight(gesture: UIGestureRecognizer) {
        // Add animation here
        DispatchQueue.main.async(execute: {
            let animation = CATransition()
            animation.type = kCATransitionReveal
            animation.subtype = kCATransitionFromLeft
            animation.duration = 0.5
            animation.delegate = self
            animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
            //Add this animation to your view
            self.transparentView.layer.add(animation, forKey: nil)
            self.transparentView.removeFromSuperview()//Remove or hide yourview if requirement.
        })
}

আপনি যদি ভিউ থেকে ভঙ্গিমাটি সরাতে চান তবে এই কোডটি ব্যবহার করুন

self.transparentView.removeGestureRecognizer(gesture)

উদা:

func willMoveFromView(view: UIView) {
    if view.gestureRecognizers != nil {
        for gesture in view.gestureRecognizers! {
            //view.removeGestureRecognizer(gesture)//This will remove all gestures including tap etc...
            if let recognizer = gesture as? UISwipeGestureRecognizer {
                //view.removeGestureRecognizer(recognizer)//This will remove all swipe gestures
                if recognizer.direction == .left {//Especially for left swipe
                    view.removeGestureRecognizer(recognizer)
                }
            }
        }
    }
}

এই ফাংশন কল করুন

//Remove swipe gesture
self.willMoveFromView(view: self.transparentView)

এটির মতো আপনি বাকী দিকনির্দেশগুলি লিখতে পারেন এবং নীচে থেকে উপরে এবং তদ্বিপরীত আপনার স্ক্রোল ভিউ আছে কিনা তা দয়া করে সাবধান হন

যদি আপনার কাছে স্ক্রোল ভিউ থাকে তবে আপনি উপর থেকে নীচের পক্ষে বিরোধ পাবেন এবং বিপরীত অঙ্গভঙ্গি দেখুন।


4

UISwipeGestureRecognizerdirectionনিম্নলিখিত সংজ্ঞা আছে যে একটি সম্পত্তি আছে:

var direction: UISwipeGestureRecognizerDirection

এই অঙ্গভঙ্গি সনাক্তকারীর জন্য সোয়াইপের অনুমতিপ্রাপ্ত দিক।


সুইফট 3.0.1 (এবং নীচে) সঙ্গে সমস্যা যে এমনকি যদি UISwipeGestureRecognizerDirectionকনর্ফাম করার OptionSet, নিম্নলিখিত স্নিপেট কম্পাইল হবে কিন্তু কোনো ইতিবাচক প্রত্যাশিত ফল না:

// This compiles but does not work
let gesture = UISwipeGestureRecognizer(target: self, action: #selector(gestureHandler))
gesture.direction = [.right, .left, .up, .down]
self.addGestureRecognizer(gesture)

কার্যকারণ হিসাবে আপনাকে UISwipeGestureRecognizerপ্রতিটি পছন্দসই জন্য একটি তৈরি করতে হবে direction


নিম্নলিখিত খেলার মাঠের কোডটি অ্যারের পদ্ধতি ব্যবহার করে UISwipeGestureRecognizerকীভাবে একই UIViewএবং একই জন্য বেশ কয়েকটি বাস্তবায়ন করতে পারে তা দেখায় :selectormap

import UIKit
import PlaygroundSupport

class SwipeableView: UIView {
    convenience init() {
        self.init(frame: CGRect(x: 100, y: 100, width: 100, height: 100))
        backgroundColor = .red

        [UISwipeGestureRecognizerDirection.right, .left, .up, .down].map({
            let gesture = UISwipeGestureRecognizer(target: self, action: #selector(gestureHandler))
            gesture.direction = $0
            self.addGestureRecognizer(gesture)
        })
    }

    func gestureHandler(sender: UISwipeGestureRecognizer) {
        switch sender.direction {
        case [.left]:   frame.origin.x -= 10
        case [.right]:  frame.origin.x += 10
        case [.up]:     frame.origin.y -= 10
        case [.down]:   frame.origin.y += 10
        default:        break
        }
    }
}

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = .white
        view.addSubview(SwipeableView())
    }
}

let controller = ViewController()
PlaygroundPage.current.liveView = controller

এক্সকোড 8.3 এ এখনও একই সমস্যা - সংকলিত কিন্তু কাজ করছে না - আমি ঠিক পিছনে বাম এবং ডানদিকে এসেছিUISwipeGestureRecognizerDirection(rawValue: 15)
জন

4

আপনি যা দেখতে চান তার জন্য ইঙ্গিতটি সোয়াইপ করুন, বা অ্যালেক্সান্ড্রে ক্যাসাগন ভিত্তিক সুইফট 5 এবং এক্সকোড 11-এ ভিউকন্ট্রোলার পুরো দেখুন

override func viewDidLoad() {
    super.viewDidLoad()

    addSwipe()
}

func addSwipe() {
    let directions: [UISwipeGestureRecognizer.Direction] = [.right, .left, .up, .down]
    for direction in directions {
        let gesture = UISwipeGestureRecognizer(target: self, action: #selector(handleSwipe))
        gesture.direction = direction
        self.myView.addGestureRecognizer(gesture)// self.view
    }
}

@objc func handleSwipe(sender: UISwipeGestureRecognizer) {
    let direction = sender.direction
    switch direction {
        case .right:
            print("Gesture direction: Right")
        case .left:
            print("Gesture direction: Left")
        case .up:
            print("Gesture direction: Up")
        case .down:
            print("Gesture direction: Down")
        default:
            print("Unrecognized Gesture Direction")
    }
}

3

সুইফট 5-সোয়াইপ অঙ্গভঙ্গি

  override func viewDidLoad() {
    super.viewDidLoad()
    let swipeLeft = UISwipeGestureRecognizer(target: self, action: #selector(handleGesture))
    swipeLeft.direction = .left
    self.view!.addGestureRecognizer(swipeLeft)

    let swipeRight = UISwipeGestureRecognizer(target: self, action: #selector(handleGesture))
    swipeRight.direction = .right
    self.view!.addGestureRecognizer(swipeRight)

    let swipeUp = UISwipeGestureRecognizer(target: self, action: #selector(handleGesture))
    swipeUp.direction = .up
    self.view!.addGestureRecognizer(swipeUp)

    let swipeDown = UISwipeGestureRecognizer(target: self, action: #selector(handleGesture))
    swipeDown.direction = .down
    self.view!.addGestureRecognizer(swipeDown)
}

@objc func handleGesture(gesture: UISwipeGestureRecognizer) -> Void {
    if gesture.direction == UISwipeGestureRecognizer.Direction.right {
        print("Swipe Right")
    }
    else if gesture.direction == UISwipeGestureRecognizer.Direction.left {
        print("Swipe Left")
    }
    else if gesture.direction == UISwipeGestureRecognizer.Direction.up {
        print("Swipe Up")
    }
    else if gesture.direction == UISwipeGestureRecognizer.Direction.down {
        print("Swipe Down")
    }
}

2

প্রথমে একটি তৈরি baseViewControllerকরুন এবং viewDidLoadএই কোডটি "swift4" যুক্ত করুন:

class BaseViewController: UIViewController {             

     override func viewDidLoad() {
         super.viewDidLoad()
         let swipeRight = UISwipeGestureRecognizer(target: self, action: #selector(swiped))
         swipeRight.direction = UISwipeGestureRecognizerDirection.right
         self.view.addGestureRecognizer(swipeRight)
         let swipeLeft = UISwipeGestureRecognizer(target: self, action: #selector(swiped))
         swipeLeft.direction = UISwipeGestureRecognizerDirection.left
         self.view.addGestureRecognizer(swipeLeft)
     }

     // Example Tabbar 5 pages
     @objc func swiped(_ gesture: UISwipeGestureRecognizer) {
         if gesture.direction == .left {
            if (self.tabBarController?.selectedIndex)! < 5 {
                self.tabBarController?.selectedIndex += 1
            }
         } else if gesture.direction == .right {
             if (self.tabBarController?.selectedIndex)! > 0 {
                 self.tabBarController?.selectedIndex -= 1
             }
         }
     }  
}

এবং এই baseControllerক্লাসটি ব্যবহার করুন :

class YourViewController: BaseViewController {
    // its done. Swipe successful
    //Now you can use all the Controller you have created without writing any code.    
}

1

নেটের উত্তরের জন্য কেবল একটি শীতল সুইফট বাক্য গঠন:

[UISwipeGestureRecognizerDirection.right,
 UISwipeGestureRecognizerDirection.left,
 UISwipeGestureRecognizerDirection.up,
 UISwipeGestureRecognizerDirection.down].forEach({ direction in
    let swipe = UISwipeGestureRecognizer(target: self, action: #selector(self.respondToSwipeGesture))
    swipe.direction = direction
    self.view.addGestureRecognizer(swipe)
 })

1

সহজ। কেবল নীচের কোডটি অনুসরণ করুন এবং উপভোগ করুন।

//SwipeGestureMethodUsing
func SwipeGestureMethodUsing ()
{
    //AddSwipeGesture
    [UISwipeGestureRecognizerDirection.right,
     UISwipeGestureRecognizerDirection.left,
     UISwipeGestureRecognizerDirection.up,
     UISwipeGestureRecognizerDirection.down].forEach({ direction in
        let swipe = UISwipeGestureRecognizer(target: self, action: #selector(self.respondToSwipeGesture))
        swipe.direction = direction
        window?.addGestureRecognizer(swipe)
     })
}

//respondToSwipeGesture
func respondToSwipeGesture(gesture: UIGestureRecognizer) {

    if let swipeGesture = gesture as? UISwipeGestureRecognizer
    {
        switch swipeGesture.direction
        {
        case UISwipeGestureRecognizerDirection.right:
            print("Swiped right")
        case UISwipeGestureRecognizerDirection.down:
            print("Swiped down")
        case UISwipeGestureRecognizerDirection.left:
            print("Swiped left")
        case UISwipeGestureRecognizerDirection.up:
            print("Swiped up")
        default:
            break
        }
    }
}

1

জন্য সুইফট 5 এটি আপডেট এর

//Add in ViewDidLoad
let gesture = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.handleSwipe))
        gesture.direction = .right
        self.view.addGestureRecognizer(gesture)

//Add New Method
@objc func handleSwipe(sender: UISwipeGestureRecognizer) {
        print("swipe direction is",sender.direction)

    }

এটি ওপি-র প্রশ্নের উত্তর কীভাবে? সমস্যাটি হ'ল সোয়াইপ অঙ্গভঙ্গি শনাক্তকারীকে একাধিক দিকনির্দেশ যুক্ত করার জন্য একটি দুর্দান্ত উপায় সন্ধান করা।
শাশ্বত

1

কিছুক্ষণ খনন করার পরে:

সমস্ত 4 দিকের জন্য সোয়াইপ যুক্ত করার সংক্ষিপ্ততম উপায় হ'ল:

override func viewDidLoad() {
    super.viewDidLoad()    
    for direction in [UISwipeGestureRecognizer.Direction.down, .up, .left, .right]{
        let swipeGest = UISwipeGestureRecognizer(target: self, action: #selector(swipeAction(_:)))
        swipeGest.direction = direction
        self.view.addGestureRecognizer(swipeGest)
    }
} 

@objc func swipeAction(_ gesture: UISwipeGestureRecognizer){
    switch gesture.direction {
    case UISwipeGestureRecognizer.Direction.right:
        print("Swiped right")
    case UISwipeGestureRecognizer.Direction.down:
        print("Swiped down")
    case UISwipeGestureRecognizer.Direction.left:
        print("Swiped left")
    case UISwipeGestureRecognizer.Direction.up:
        print("Swiped up")
    default: break
}

1

সুইফ্ট 5 এ,

let swipeGesture = UISwipeGestureRecognizer(target: self, action: #selector(handleSwipe))
swipeGesture.direction = [.left, .right, .up, .down]
view.addGestureRecognizer(swipeGesture)

0

এটি কেবলমাত্র একটি ফাংশন ঘোষণা করে করা যেতে পারে যা আপনার সমস্ত সোয়াইপ ইউআইএসওয়াইপজেক্টরআর সনাক্তকারী নির্দেশকে পরিচালনা করবে। আমার কোডটি এখানে:

let swipeGestureRight = UISwipeGestureRecognizer(target: self, action:#selector(ViewController.respondToSwipeGesture(_:)) )
swipeGestureRight.direction = UISwipeGestureRecognizerDirection.right
self.view .addGestureRecognizer(swipeGestureRight)

let swipeGestureLeft = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.respondToSwipeGesture(_:)))
swipeGestureLeft.direction = UISwipeGestureRecognizerDirection.left
self.view.addGestureRecognizer(swipeGestureLeft)

let swipeGestureUp = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.respondToSwipeGesture(_:)))
swipeGestureUp.direction = UISwipeGestureRecognizerDirection.up
self.view.addGestureRecognizer(swipeGestureUp)

let swipeGestureDown = UISwipeGestureRecognizer(target: self, action: #selector(ViewController.respondToSwipeGesture(_:)))
swipeGestureDown.direction = UISwipeGestureRecognizerDirection.down
self.view.addGestureRecognizer(swipeGestureDown)

এখানে ফাংশনটি যা সোয়েপডাইরেশন কার্যকারিতাটি দেবে:

func respondToSwipeGesture(_ sender: UIGestureRecognizer) {
    if let swipeGesture = sender as? UISwipeGestureRecognizer {
        switch swipeGesture.direction {
            case UISwipeGestureRecognizerDirection.right:
                print("right swipe")
            case UISwipeGestureRecognizerDirection.left:
                print("leftSwipe")
            case UISwipeGestureRecognizerDirection.up:
                print("upSwipe")
            case UISwipeGestureRecognizerDirection.down:
                print("downSwipe")
            default:
                break
        }
    }
}

0

ঠিক এর মতো: ( সুইফট ৪.২.১ )

UISwipeGestureRecognizer.Direction.init(
  rawValue: UISwipeGestureRecognizer.Direction.left.rawValue |
            UISwipeGestureRecognizer.Direction.right.rawValue |
            UISwipeGestureRecognizer.Direction.up.rawValue |
            UISwipeGestureRecognizer.Direction.down.rawValue
)

2
আপনার কোডে কিছু বিবরণ যুক্ত করুন, দয়া করে এটি আরও ভাল করে তুলবে।
পৌল বাক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.