현재보기 외부의 탭을 감지하는 방법이 있습니까? hitTest 메서드로 무언가를 구현하려했지만 실패했지만 잘 이해할 수는 없습니다.현재보기 외부의 탭을 감지하십시오.
4
A
답변
0
당신은 당신의보기 안에 있다면 터치가 배경 뷰했지만 "거짓"경우에만 "true"를 반환합니다 UIGestureRecognizerDelegate 프로토콜을
extension YourViewController: UIGestureRecognizerDelegate {
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer,
shouldReceive touch: UITouch) -> Bool {
return (touch.view === self.view)
}
}
를 사용할 수 있습니다.
참고 : ID 연산자 ===는 touch.view와 self.view를 비교합니다. 두 변수가 동일한 객체를 참조하는지 여부를 알고 싶습니다.
그리고 viewDidLoad()에서 gestureRecognizer를 만들고 대리자를 설정합니다.
let gestureRecognizer = UITapGestureRecognizer(target: self,action: #selector(yourActionMethod))
gestureRecognizer.cancelsTouchesInView = false
gestureRecognizer.delegate = self
view.addGestureRecognizer(gestureRecognizer)
5
당신이해야 할 일은 어떤 안에 당신이 원하는 (당신이 터치 세트에서 첫 번째 터치 객체를 얻을 수 있고 당신이보기에 그 터치의 위치를 확인해야 에서 touchesBegan입니다 터치 감지).
보기에서 터치 위치를 얻은 후 현재보기 (탭이 안쪽인지 바깥 쪽인지 확인해야하는보기) 여부를 확인해야합니다.
currentView의 프레임에 터치 위치가 포함되어 있으면 외부에서 뷰 내부에서 터치가 발생했음을 의미합니다.
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let touch = touches.first
guard let location = touch?.location(in: self.view) else { return }
if !currentView.frame.contains(location) {
print("Tapped outside the view")
}else {
print("Tapped inside the view")
}
}
희망 하시겠습니까!
관련 문제
- 1. 현재보기
- 2. monotouch - 현재보기 설정
- 3. 안드로이드에서 각 탭 레이아웃을 감지하십시오.
- 4. 새로 고침 현재보기 iOS
- 5. 현재보기 컨트롤러 ios7
- 6. 터치하는 동안 현재보기 컨트롤러
- 7. 신속한 현재보기 컨트롤러 저장
- 8. 현재보기 상단에보기 추가
- 9. 백그라운드에서 비동기로 현재보기 컨트롤러
- 10. 현재보기 관련 문제 ViewController
- 11. 내 현재보기 기억하기
- 12. 오류 메시지가있는 현재보기 렌더링
- 13. ASP.NET MVC - 현재보기 폴더
- 14. 로컬 알림을받을 때의 현재보기
- 15. 스토리 보드에서 현재보기
- 16. tabbarcontroller에서 현재보기 제거
- 17. 애니메이션보기 및 현재보기 잠그기
- 18. 현재보기 컨트롤러가 활성화되어 있음
- 19. 페이저보기 현재보기 선택
- 20. 탭 외부의 링크를 클릭하여 활성 탭을 설정 하시겠습니까? JQuery와 UI 탭을 사용하여
- 21. 값을 변경하기 전에 터치 스위치를 감지하십시오.
- 22. iOS 5의 모달 대리인의 현재보기
- 23. 현재보기 컨트롤러를 변경하는 방법은 무엇입니까?
- 24. 루프 모든 것을 현재보기 포트
- 25. HOW? 컨트롤러 반환 없음/현재보기
- 26. iOS - 현재보기 컨트롤러에서 데이터를 반환
- 27. 현재보기 영역 내의 점을 감지합니까?
- 28. 코드에서 현재보기 컨트롤러를 참조하는 방법
- 29. iOS에서 현재보기 컨트롤러를 찾는 방법
- 30. popviewcontroller 필요하지만 현재보기 숨겨진 유지
시도했습니다 touchesBegan : 방법 – ankit
현재보기가 포함 된보기에 tapGesture를 추가 할 수 있습니다. – Larme
다음과 같이 처리하고 있습니다. https://stackoverflow.com/a/48790850/7132300 – algrid