사과 문서에 따라. Apple UIPanGestureRecognizer 다음과 같이 팬과 스 와이프의 차이점 :-
UIPanGestureRecognizer 는 패닝 (드래깅) 제스처를 찾는 UIGestureRecognizer 의 구체적인 하위 클래스입니다 . 사용자는 뷰를 이동하는 동안 하나 이상의 손가락을 뷰에서 눌러야합니다. 이 제스처 인식기에 대한 동작 방법을 구현하는 클라이언트는 제스처의 현재 변환 및 속도를 요청할 수 있습니다.
패닝 제스처는 연속적입니다. 허용되는 최소 손가락 수 ( minimumNumberOfTouches )가 팬으로 간주 될만큼 충분히 움직일 때 시작 ( 시작 )됩니다 . 최소 손가락을 눌렀을 때 손가락이 움직이면 변경 (변경)됩니다. 그것은 (종료 종료 모든 손가락을 들어 올릴 때).
이 클래스의 클라이언트는 조치 메소드에서 현재 제스처 변환 (translation (in :) ) 및 변환 속도 (velocity (in :) )에 대해 UIPanGestureRecognizer 오브젝트를 조회 할 수 있습니다 . 변환 및 속도 값에 좌표계를 사용해야하는 뷰를 지정할 수 있습니다. 클라이언트는 번역을 원하는 값으로 재설정 할 수도 있습니다.
스위프트 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 그 하나 또는 여러 개의 탭을 찾습니다. 제스처를 인식하려면 지정된 수의 손가락이 지정된 횟수만큼보기를 눌러야합니다.
탭은 별개의 제스처이지만 제스처 인식기의 각 상태마다 별개입니다. 따라서, 연관된 동작 메시지는 제스처가 시작될 때 전송되고 제스처의 종료 상태 (및 그 포함)까지 각 중간 상태에 대해 전송된다. 탭 제스처를 처리하는 코드는 제스처 상태를 테스트해야합니다.
스위프트 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")
}
인식기 예제 이미지