파단의 알 수없는 수의 제스처 인식기를 설정하는 방법 : 순간다음과 같이 내가 <code>UIGestureRecognizerDelegate</code>을 준수하고 팬 제스처를 설정 한 나는 <code>mainCanvasView</code>라는 기본보기를
let panGesture = UIPanGestureRecognizer(target: self, action:#selector(self.handlePanGesture(gesture:)))
self.mainCanvasView.addGestureRecognizer(panGesture)
func handlePanGesture(gesture: UIPanGestureRecognizer) {
if gesture.state == UIGestureRecognizerState.began || gesture.state == UIGestureRecognizerState.changed{
let translation = gesture.translation(in: view)
gesture.view?.transform = (gesture.view?.transform)!.translatedBy(x: translation.x, y: translation.y)
gesture.setTranslation(CGPoint(x: 0, y: 0), in: view)
}
}
을의 결과는 다음과 같습니다
내 목표는 mainCanvasView
를 이동하는 아니라, 이후의 서브 뷰는 사용자가 mainCanvasView
에 추가 할 수있다. 나는 이이 아니고에 추가 된 모든 새로운 서브 뷰에 팬 제스처를 추가해서는 안된다는 것을 알고 있습니다. 내 mainCanvasView
에서 제스처가 패닝 한 최상위 하위 뷰를 어떻게 감지 할 수 있습니까? 현재 작동하지 않는 것에
일러스트 예 : 서브 뷰는 주요 컨테이너보기의 경계 밖으로 이동하는 경우
이것은 훌륭한 해결책입니다! 빠른 질문 : 기본 캔버스보기가 추가 된 2 개 이상의 하위보기가있는 경우 팬 동작은 손가락이 움직이는 위치의 하위보기를 모두 이동합니다. 나는 당신의 코드를 수정하려고했다. 1. 다른 모든 뷰의 맨 위로 이동 된 서브 뷰를 이동시킨다. 많은 성공을 거두지 못했습니다. 어떤 통찰력이라도 대단히 감사합니다 - 감사합니다. – daspianist
새로운 답변에 새로운 해결책이 추가되었습니다. –