iOS에서 Pan과 Swipe의 차이점은 무엇입니까?
간단하게 들립니다. 트랙 패드를 잡고 손가락을 release 다음 손을 떼십시오 . 그러나 어떻게 든 스 와이프가 트리거되지 않습니다 (대신 팬이 대신 트리거 됨)
UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc]
initWithTarget:v action:@selector(handleSwipe:)];
swipeGesture.direction= UISwipeGestureRecognizerDirectionUp;
[v addGestureRecognizer:swipeGesture];
대신 팬은 위의 순서로 인식됩니다.
UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc]
initWithTarget:v action:@selector(handlePan:)];
[v addGestureRecognizer: panGesture];
팬에 댓글을 달면 스 와이프는 같은 동작으로 인식됩니다.
- 팬과 스 와이프의 차이점은 무엇입니까?
- iPhone 시뮬레이터에서 스 와이프를 시뮬레이션하는 방법은 무엇입니까?
정의상, 스 와이프 제스처는 필연적으로 팬 제스처입니다. 둘 다 터치 포인트의 이동을 포함합니다. 차이점은 인식기 시맨틱에 있습니다. 팬 인식기는 병진 이동의 시작을 찾고 시간이 지남에 따라 어떤 방향 으로든 움직임을 계속보고하지만, 스 와이프 인식기는 사용자의 터치가 필요한 방향으로 선형으로 이동했는지 여부를 즉시 결정합니다.
기본적으로 두 인식기가 동일한 동작을 인식하지 않으므로 이동 및 스 와이프간에 충돌이 있습니다. 팬 인식기는 제스처가 더 단순하고 더 일반적이기 때문에 충돌을 "승리합니다": 스 와이프는 팬이지만 팬이 스 와이프하지 않을 수 있으므로 팬이 먼저 인식하고 다른 인식기를 제외합니다.
위임 방법 gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:을 사용하거나 팬 인식기를와 슬쩍 인식기에 의존하게하여 위임없이이 충돌을 해결할 수 있어야합니다 requireGestureRecognizerToFail:.
충돌이 해결되면 마우스를 빠르게 드래그하여 한 손가락 스 와이프를 시뮬레이션 할 수 있습니다. (마우스가 손가락보다 정확하기는하지만 장치에서 실제 작업을 수행하는 것보다 약간 더 까다 롭습니다.) Option & Shift 키를 누르면 두 손가락으로 팬 / 스 와이프 할 수 있습니다.
손가락을 특정 방향으로 만 드래그하면 (스 와이프, 아래로 스 와이프, 왼쪽으로 스 와이프, 오른쪽으로 스 와이프) 스 와이프 제스처가 작동합니다. 예를 들어 테이블 뷰 컨트롤러의 스 와이프 가능한 셀
손가락을 원하는 방향으로 드래그하면 팬 제스처가 작동합니다. 당신은 그것에 가속 또는 감속을 줄 수 있습니다. 예를 들어, 한 장소에서 다른 장소로 객체를 이동하거나 스피너를 회전시키는 경우 ..
http://hammerjs.github.io/ 에 따르면 차이점은 다음과 같습니다.
- 이동 : 동일한 큰보기에서 길 찾기
- 스 와이프 : 여러보기 간 전환
제스처는 동일합니다. 한 손가락을 사용하고 움직입니다.
사과 문서에 따라. 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 그 하나 또는 여러 개의 탭을 찾습니다. 제스처를 인식하려면 지정된 수의 손가락이 지정된 횟수만큼보기를 눌러야합니다.
Although taps are discrete gestures, they are discrete for each state of the gesture recognizer; thus the associated action message is sent when the gesture begins and is sent for each intermediate state until (and including) the ending state of the gesture. Code that handles tap gestures should therefore test for the state of the gesture.
Swift 3 UITapGestureRecognizer Demo Example Resource Link
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")
}
참고URL : https://stackoverflow.com/questions/9898627/what-is-the-difference-between-pan-and-swipe-in-ios
'Programming' 카테고리의 다른 글
| Canvas에 그릴 텍스트 너비 측정 (Android) (0) | 2020.07.12 |
|---|---|
| 더 이상 사용되지 않는 코드를 Ruby에 표시하는 가장 좋은 방법은 무엇입니까? (0) | 2020.07.12 |
| 리플렉션으로 게터를 호출하는 가장 좋은 방법 (0) | 2020.07.12 |
| '썽크'란 무엇입니까? (0) | 2020.07.12 |
| 첫 번째 인스턴스에서만 문자열 분리-Java (0) | 2020.07.12 |
