Apple belgesine göre. Apple UIPanGestureRecognizer Bir pan ve tokatlamak arasındaki fark aşağıdaki gibidir: -
UIPanGestureRecognizer somut bir alt sınıf olan UIGestureRecognizer görünüyor kaydırma için (sürükleme) o hareketler. Kullanıcı, bir görüntüyü kaydırırken bir veya daha fazla parmağına basmalıdır. Bu hareket tanıyıcı için eylem yöntemini uygulayan müşteriler, ondan hareketin geçerli çevirisini ve hızını isteyebilir.
Kaydırma hareketi süreklidir. O (başlar başladı izin parmakların en az sayıda (zaman) minimumNumberOfTouches pan dikkate alınması gereken) yeterli taşındı. En azından minimum sayıda parmak basılıyken bir parmak hareket ettiğinde değişir (değişir). Tüm parmaklar kaldırıldığında sona erer (biter ).
Bu sınıfın istemcileri, eylem yöntemlerinde, hareketin geçerli çevirisi ( çeviri (in :) ) ve çevirinin hızı (hız (in :) ) için UIPanGestureRecognizer nesnesini sorgulayabilir . Koordinat sisteminin öteleme ve hız değerleri için kullanılması gereken görünümü belirleyebilirler. Müşteriler ayrıca çeviriyi istenen bir değere sıfırlayabilir.
Swift 3 UIPanGestureRecognizer Demo Örneği: - Kaynak Bağlantısı
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 belgesine göre. Apple UITapGestureRecognizer
UITapGestureRecognizer somut bir alt sınıf olan UIGestureRecognizer bu tek veya çoklu dokunma için görünüyor. Hareketin tanınması için, belirtilen sayıda parmak görünüme belirli sayıda dokunmalıdır.
Dokunmalar ayrı hareketler olsa da, hareket tanıyıcının her durumu için ayrıdırlar; bu nedenle ilişkili eylem mesajı, hareket başladığında gönderilir ve hareketin bitiş durumuna kadar (ve dahil) her ara durum için gönderilir. Dokunma hareketlerini işleyen kod, bu nedenle hareketin durumunu test etmelidir.
Swift 3 UITapGestureRecognizer Demo Örneği Kaynak Bağlantısı
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")
}
Tanıyıcı için Örnek Görüntü