모든 화면을 덮는 사용자 정의보기가 있습니다. 이 사용자 정의보기에는 UITapGestureRecognizer
. 이 뷰가 화면의 특정 영역을 제외한 모든 터치 이벤트를 삼키기를 원합니다.
사용해 ShouldReceiveTouch
보았지만 작동하지 않습니다
UserInteractionEnabled = true;
var gesture = new UITapGestureRecognizer(OnTouch);
gesture.ShouldReceiveTouch += (recognizer, touch) =>
{
var point = recognizer.LocationInView(null);
var res = ... // my condition to see if has or not to receive touch;
return res;
};
AddGestureRecognizer(gesture);
클릭해야하는 버튼이있는 특정 영역의 터치 이벤트를 제외한 모든 터치 이벤트를 어떻게 삼킬 수 있습니까? 내 문제는 이벤트를 전달하는 방법을 모른다는 것입니다 . 터치 지점이 터치 이벤트를 전달하려는 영역과 일치하는지 감지하는 방법을 알고 있습니다.
솔루션은 iOS 개발에 사용할 수있는 모든 언어에있을 수 있으며 Xamarin을 사용하고 있기 때문에 내 코드는 C #에 있지만 관련이 없습니다.
이 UIView 메서드를 재정의합니다.
open func point(inside point: CGPoint, with event: UIEvent?) -> Bool
포인트가 특정 영역에 있는지 확인하십시오. true
그럴 경우 반환하고 그렇지 않은 경우 반환 합니다 false
.
자세한 내용은 https://developer.apple.com/reference/uikit/uiview/1622469-hittest 에서 확인할 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다