mainCanvasView
이라는 주 뷰에 나타날 수있는 하위 뷰의 알 수없는 번호가 있습니다. 사용자가이 서브 뷰상단 서브 뷰에만 팬 제스처를 감지하고 적용하는 방법
- 감지 하위 뷰에 팬 제스처를 만들고, 적용 팬 애니메이션 변환 그 서브 뷰 만을
mainCanvasView
- 위에 해당 하위 뷰를 가져올 때 내 목표는이다
는 지금, 나는 다음과 같은 짓을 : 지프 볼 수 있듯이
//Added a pan gesture hanlder to mainCanvasView
let panGesture = UIPanGestureRecognizer(target: self, action:#selector(self.handlePanGesture(gesture:)))
self.mainCanvasView.addGestureRecognizer(panGesture)
//Define the method for handling gestures
func handlePanGesture(gesture: UIPanGestureRecognizer) {
if gesture.state == UIGestureRecognizerState.began || gesture.state == UIGestureRecognizerState.changed {
var appliedView = UIView(frame: view.frame)
viewLooper: for view in self.mainCanvasView.subviews {
let point = gesture.location(in: view)
if (view.hitTest(point, with: nil) != nil) { //Find the view that the finger interacted with
appliedView = view
break viewLooper
}
}
self.mainCanvasView.bringSubview(toFront: appliedView)
let translation = gesture.translation(in: view)
appliedView.transform = (appliedView.transform).translatedBy(x: translation.x, y: translation.y)
gesture.setTranslation(CGPoint(x: 0, y: 0), in: appliedView)
}
}
을 INDIVI을 이동하면서 하위보기가 약간 겹치면 두 가지 하위보기가 이동되는 이상한 효과가 발생합니다.
이 문제를 해결할 수있는 방법에 대한 권장 사항은 대단히 감사하겠습니다.
UIView에 태그를 설정하고 동작 방식 gesture.view에서 가져 오기? .tag – karthikeyan
'exclusiveTouch' 사용해보기 - https://developer.apple.com/documentation/uikit/uiview/1622453-exclusivetouch – Amit