ตามเอกสารของ apple Apple UIPanGestureRecognizerความแตกต่างระหว่างการแพนและการปัดดังนี้: -
UIPanGestureRecognizerเป็นคลาสย่อยที่เป็นรูปธรรมของUIGestureRecognizerที่ค้นหาท่าทางการแพน (ลาก) ผู้ใช้จะต้องกดนิ้วอย่างน้อยหนึ่งนิ้วบนมุมมองในขณะที่เลื่อนดู ลูกค้าที่ใช้วิธีการดำเนินการสำหรับเครื่องมือจดจำท่าทางนี้สามารถขอคำแปลปัจจุบันและความเร็วของท่าทางสัมผัสได้
ท่าทางการแพนจะต่อเนื่อง เริ่มต้น ( เริ่ม ) เมื่อจำนวนนิ้วขั้นต่ำที่อนุญาต ( MinimumNumberOfTouches ) ได้ขยับมากพอที่จะถือว่าเป็นกระทะ มันจะเปลี่ยนไป (เปลี่ยน) เมื่อนิ้วขยับในขณะที่กดลงอย่างน้อยที่สุด มันจะสิ้นสุด ( สิ้นสุด ) เมื่อนิ้วทั้งหมดถูกยกขึ้น
ไคลเอนต์ของคลาสนี้สามารถสอบถามอ็อบเจ็กต์ UIPanGestureRecognizer สำหรับการแปลท่าทางปัจจุบัน (การแปล (ใน :) ) และความเร็วของการแปลในวิธีการดำเนินการ ( velocity (in :) ) พวกเขาสามารถระบุมุมมองที่ควรใช้ระบบพิกัดสำหรับค่าการแปลและความเร็ว ลูกค้าอาจรีเซ็ตการแปลเป็นค่าที่ต้องการ
ตัวอย่างการสาธิต UIPanGestureRecognizer Swift 3: - ลิงก์ทรัพยากร
import UIKit
class ViewController: UIViewController {
// this records our circle's center for use as an offset while dragging
var circleCenter: CGPoint!
override func viewDidLoad() {
super.viewDidLoad()
// Add a draggable view
let circle = UIView(frame: CGRect(x: 0.0, y: 0.0, width: 100.0, height: 100.0))
circle.center = self.view.center
circle.layer.cornerRadius = 50.0
circle.backgroundColor = UIColor.green()
// add pan gesture recognizer to
circle.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: #selector(self.dragCircle)))
self.view.addSubview(circle)
}
func dragCircle(gesture: UIPanGestureRecognizer) {
let target = gesture.view!
switch gesture.state {
case .began, .ended:
circleCenter = target.center
case .changed:
let translation = gesture.translation(in: self.view)
target.center = CGPoint(x: circleCenter!.x + translation.x, y: circleCenter!.y + translation.y)
default: break
}
}
}
ตามเอกสารของ apple Apple UITapGestureRecognizer
UITapGestureRecognizerเป็นคลาสย่อยที่เป็นรูปธรรมของUIGestureRecognizerที่ค้นหาการแตะครั้งเดียวหรือหลายครั้ง เพื่อให้จดจำท่าทางได้จำนวนนิ้วที่ระบุต้องแตะมุมมองตามจำนวนครั้งที่ระบุ
แม้ว่าการแตะจะเป็นท่าทางที่ไม่ต่อเนื่อง แต่ก็ไม่ต่อเนื่องกันสำหรับแต่ละสถานะของเครื่องมือจดจำท่าทาง ดังนั้นข้อความการดำเนินการที่เกี่ยวข้องจะถูกส่งเมื่อท่าทางเริ่มต้นและถูกส่งสำหรับแต่ละสถานะกลางจนกระทั่ง (และรวมถึง) สถานะสิ้นสุดของท่าทางสัมผัส รหัสที่จัดการกับท่าทางสัมผัสควรทดสอบสถานะของท่าทางสัมผัส
Swift 3 UITapGestureRecognizer ตัวอย่าง ลิงก์ทรัพยากรตัวอย่าง
override func viewDidLoad() {
super.viewDidLoad()
let tap = UITapGestureRecognizer(target: self, action: #selector(doubleTapped))
tap.numberOfTapsRequired = 2
view.addGestureRecognizer(tap)
}
func doubleTapped() {
// do something cool here
print("Test TapGesture")
}
ภาพตัวอย่างสำหรับ Recognizer