Згідно з яблучним документом. Apple UIPanGestureRecognizer Різниця між панеллю та пальцем, як показано нижче: -
UIPanGestureRecognizer - це конкретний підклас UIGestureRecognizer який шукає переміщення (перетягування) жестів. Користувач повинен натискати одним або декількома пальцями на погляді під час панорамування. Клієнти, що реалізують метод дії для цього розпізнавача жестів, можуть запитати його про поточний переклад і швидкість жесту.
Жест панорамування безперервний. Він починається ( починається ), коли мінімальна кількість дозволених пальців (мінімальна кількість NFOTOFTouches ) перемістилася достатньо, щоб вважатись сковородою. Він змінюється (змінюється), коли палець рухається, хоча принаймні мінімальна кількість пальців натиснута вниз. Він закінчується ( закінчується ), коли всі пальці підняті.
Клієнти цього класу можуть у своїх методах дії запитувати об’єкт UIPanGestureRecognizer щодо поточного перекладу жесту ( переклад (в :) ) та швидкості перекладу ( швидкість (в :)) ). Вони можуть задати вигляд, система координат якої повинна використовуватися для значень перекладу та швидкості. Клієнти також можуть скинути переклад на потрібне значення.
Swift 3 Демонстраційний приклад UIPanGestureRecognizer: - Посилання на ресурс
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 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")
}
Приклад зображення для розпізнавача