วิธีจดจำการปัดทั้ง 4 ทิศทาง


132

ฉันต้องใช้การปัดเพื่อจดจำท่าทางการปัดลงแล้วไปทางขวา แต่ใน UISwipeGestureRecognizer ที่รวดเร็วได้กำหนดทิศทางที่ถูกต้องไว้แล้ว .. และฉันไม่รู้ว่าจะทำอย่างไรเพื่อใช้ในทิศทางอื่น ..

คำตอบ:


328

คุณต้องมีหนึ่ง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
        }
    }
}

Swift 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/…
Sergey Skoblikov

3
"ตัวรู้จำแต่ละตัวสามารถจัดการทิศทางเดียวเท่านั้น" - เป็นจริงใน Swift และเท็จใน Objective-C จะระบุ
King-Wizard

13
คุณไม่จำเป็นต้องเพิ่มUISwipeGestureRecognizerDirectionหน้า.Downect เพียงใช้swipeDown.direction = .Downถ้าเพียงพอเพียงพอ Just a tip =)
Paul Peelen

เราสามารถเพิ่มออบเจ็กต์ GestureRecogniser เดียวกันในมากกว่าหนึ่งมุมมองได้หรือไม่ฉันลองแล้ว แต่ไม่ได้ผล
สูงสุด

3
หากคุณใช้วิธีการของ @Sergey Skoblikovs อย่างรวดเร็ว (โดยการทำswipe.direction = [.Right,.Down,.Up,.Left]) ตัวจดจำจะไม่ถูกเรียกด้วยซ้ำบางทีนี่อาจเป็นปัญหาเกี่ยวกับความรวดเร็ว แต่ ณ ตอนนี้ใช้งานไม่ได้
Knight0fDragon

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!
Alexandre Cassagne

1
สะอาดตอบโจทย์ที่สุดสำหรับผม
Christopher Smit

22

จากกระดานเรื่องราว:

  1. เพิ่มตัวจดจำท่าทางสัมผัสแบบสี่นิ้วในมุมมองของคุณ
  2. กำหนดทิศทางเป้าหมายจากตัวตรวจสอบแอตทริบิวต์ คุณสามารถเลือกขวาซ้ายขึ้นหรือลง
  3. ทีละรายการเลือกตัวจดจำท่าทางการปัดควบคุม + ลากไปยังตัวควบคุมมุมมองของคุณ ใส่ชื่อ (ให้เราพูด leftGesture, rightGesture, upGesture และ downGesture) เปลี่ยนการเชื่อมต่อเป็น: Action และพิมพ์เป็น: UISwipeGestureRecognizer

จาก viewController ของคุณ:

@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
ด้วยคำตอบนี้คุณไม่จำเป็นต้องเขียนโค้ดมากมาย แต่คุณใช้สตอรีบอร์ดและการเชื่อมต่อระหว่างสตอรี่บอร์ดกับโค้ดของคุณ ในกรณีที่นักพัฒนาต้องการทำงานในลักษณะนี้คำตอบนี้อาจง่ายกว่า แต่หากนักพัฒนาต้องการทำงานในการเขียนโค้ดมากกว่าคำตอบแรกคือคำตอบที่ดีที่สุด
user3099333

ฉันใช้ท่าทางสัมผัส 4 นิ้วแทนการใช้เพียงครั้งเดียวและภาระงานจำนวนมากอยู่ในกระดานเรื่องราวแทนที่จะเขียนโค้ด
user3099333

9

ดูเหมือนช่วงนี้จะเปลี่ยนไป ใน XCode 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)
}

ทดสอบใน Simulator บน iOS 8.4 และ 9.2 และบนอุปกรณ์จริงบน 9.2

หรือใช้นามสกุลของmlcollard ที่นี่ :

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

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

5
ตัวเลือกอาจถูกเรียก แต่ทิศทางของผู้ส่งไม่ถูกต้อง กล่าวอีกนัยหนึ่งวิธีนี้ใช้ได้ดีหากคุณไม่จำเป็นต้องรู้ทิศทางการปัด แต่ไม่ใช่อย่างอื่น
Robert Gummesson

ไม่ทำงานอีกต่อไป ใน Swift 3 ต้องระบุบริบทให้กับค่าแรก:[UISwipeGestureRecognizerDirection.right, .left, .up, .down]
Brent Faust

7

Apple Swift เวอร์ชัน 3.1 - Xcode เวอร์ชัน 8.3 (8E162)

วิธีที่สะดวกจากแนวทางของ Alexandre Cassagne

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ใน Terminal เพื่อแก้ไขข้อบกพร่องของฮาร์ดแวร์บางตัว ควรได้รับการแก้ไขใน Xcode เวอร์ชันใหม่
ไซเรน

6

ใน Swift 4.2 และ Xcode 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

UISwipeGestureRecognizerมีdirectionคุณสมบัติที่มีความหมายดังต่อไปนี้:

var direction: UISwipeGestureRecognizerDirection

ทิศทางการปัดที่อนุญาตสำหรับเครื่องมือจดจำท่าทางนี้


ปัญหาของ Swift 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)

ในฐานะที่เป็นวิธีแก้ปัญหาที่คุณจะต้องสร้างสำหรับแต่ละต้องการUISwipeGestureRecognizerdirection


โค้ด Playground ต่อไปนี้แสดงวิธีการใช้งานหลายตัวUISwipeGestureRecognizerสำหรับสิ่งเดียวกันUIViewและเหมือนกันselectorโดยใช้mapวิธีของ Array :

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

ปัญหาเดียวกันยังคงอยู่ใน xcode 8.3 - คอมไพล์แล้ว แต่ไม่ทำงาน - ฉันมีแค่ซ้ายและขวาหลังนี้UISwipeGestureRecognizerDirection(rawValue: 15)
John

4

ปัดท่าทางไปยังมุมมองที่คุณต้องการหรือมุมมองคอนโทรลเลอร์ของวิวทั้งหมดใน Swift 5 และ XCode 11 ตาม@Alexandre Cassagne

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

ปัดท่าทางสัมผัสในSwift 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.    
}

2

ใน Swift 5

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

1

เพียงไวยากรณ์ที่รวดเร็วเย็นกว่าสำหรับคำตอบของ Nate:

[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

หลังจากขุดไปสักพัก:

วิธีที่สั้นที่สุดในการเพิ่มการปัดสำหรับทั้ง 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
}

0

สามารถทำได้โดยเพียงแค่ประกาศฟังก์ชั่นเดียวซึ่งจะจัดการทิศทางการปัด UISwipeGestureRecognizer ทั้งหมดของคุณ นี่คือรหัสของฉัน:

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

แบบนั้น: ( Swift 4.2.1 )

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

2
เพิ่มคำอธิบายลงในโค้ดของคุณโปรดที่จะทำให้ดีขึ้น
Poul Bak

0

สำหรับSwift 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)

    }

นี่คือคำตอบสำหรับคำถามของ OP อย่างไร? ปัญหาคือการหาวิธีที่สวยงามในการเพิ่มหลายทิศทางไปยังเครื่องมือจดจำท่าทางการปัด
shashwat
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.