2017-12-29 28 views
1

iOS에서 회전 휠 개념을 시도 중입니다. 내 기본 튜토리얼은 here스위프트 : 회전 휠 개념의 서브 뷰에 대한 userInteractionEnabled

입니다. UIControl은 여기 핵심입니다. Superview의 userinteraction은 항상 비활성화되었습니다.

userinteraction을 서브뷰에만 사용하려면 어떻게해야합니까?

enter image description here

나는 SmallRoundViews에 UITapGestureRecognizer을 추가했습니다. 제스처가 작동하지 않습니다.

superview의 userinteraction을 enable로 변경하면 제스처가 작동합니다. 그러나 회전하지 않습니다.

superview의 userinteraction을 disable로 변경하면 회전이 작동합니다. 그러나 제스처가 작동하지 않습니다.

나는 모든 것을해야합니다. 나를 인도 해 줄 수 있니? 나는 수퍼의 userinteractiontrue로 변경하는 경우

+0

내가 확실히 모르지만 난이 불가능하기위한 적어도 하나의 이유를 생각할 수 있습니다 : 상호 작용이 아이들에게 부모로부터 전달되기 때문에 그 부모가 상호 작용하는 경우 아무것도 위임하지 않는 것 같다 기간이 비활성화됩니다. Pseudo :'userInteractionDisabled if else delegateToChildren()' – luk2302

+1

https://stackoverflow.com/a/38217199/1979882 – Vyacheslav

+0

아니요. 모든 것이 작동하지 않습니다. 친절히 도움이 필요하다. –

답변

2

다음 코드는

무시 UIControl 서브 클래스의 UITouch 방법 ..

에 대한 UITapGestureRecognizerspinning 노력하고 있습니다 모두 노력하고 있습니다.

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 

     let touch : UITouch = touches.first! 
     self.beginTracking(touch, with: event) 
} 
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) { 

     let touch : UITouch = touches.first! 
     self.continueTracking(touch, with: event) 
} 
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) { 

     let touch : UITouch = touches.first! 
     self.endTracking(touch, with: event) 

}