Theo tài liệu táo. Apple UIPanGestureRecognizer Sự khác biệt giữa pan và vuốt như dưới đây: -
UIPanGestureRecognizer là một lớp con cụ thể của UIGestureRecognizer tìm kiếm các cử chỉ lia máy (kéo). Người dùng phải nhấn một hoặc nhiều ngón tay trên một khung nhìn trong khi họ xoay nó. Khách hàng thực hiện phương pháp hành động cho trình nhận dạng cử chỉ này có thể yêu cầu nó cho bản dịch hiện tại và vận tốc của cử chỉ.
Một cử chỉ lia máy liên tục. Nó bắt đầu ( bắt đầu ) khi số lượng ngón tay tối thiểu được phép ( tối thiểuNumberOfTouches ) đã di chuyển đủ để được coi là một cái chảo. Nó thay đổi (thay đổi) khi một ngón tay di chuyển trong khi ít nhất số ngón tay tối thiểu được nhấn xuống. Nó kết thúc ( kết thúc ) khi tất cả các ngón tay được nâng lên.
Các khách hàng của lớp này có thể, trong các phương thức hành động của họ, truy vấn đối tượng UIPanGestureRecognizer cho bản dịch hiện tại của cử chỉ ( bản dịch (in :) ) và vận tốc của bản dịch ( vận tốc (trong :) ). Họ có thể chỉ định chế độ xem có hệ thống tọa độ nên được sử dụng cho các giá trị dịch và vận tốc. Khách hàng cũng có thể đặt lại bản dịch thành giá trị mong muốn.
Ví dụ về Demo 3 UIPanGestureRecognizer: - Liên kết tài nguyên
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
}
}
}
Theo tài liệu táo. Apple UITapGestureRecognizer
UITapGestureRecognizer là một lớp con cụ thể của UIGestureRecognizer tìm kiếm một hoặc nhiều vòi. Để cử chỉ được nhận dạng, số ngón tay được chỉ định phải nhấn vào chế độ xem một số lần được chỉ định.
Mặc dù vòi là những cử chỉ riêng biệt, nhưng chúng là riêng biệt cho từng trạng thái của bộ nhận dạng cử chỉ; do đó, thông điệp hành động liên quan được gửi khi cử chỉ bắt đầu và được gửi cho từng trạng thái trung gian cho đến khi (và bao gồm) trạng thái kết thúc của cử chỉ. Do đó, mã xử lý cử chỉ nhấn nên kiểm tra trạng thái của cử chỉ.
Swift 3 UITapGestureRecognizer Demo Ví dụ Liên kết tài nguyên
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")
}
Hình ảnh ví dụ cho Trình nhận dạng