iOS에서 동시 이동 제스처 인식

PanGestureRecognizer 스크롤 보기 내의 보기에 연결된 경우 모든 이동 제스처가 캡처되고 PanGestureRecognizer 스크롤 보기에 전달되지 않습니다. 따라서 스크롤 보기는 더 이상 스크롤되지 않습니다.

이 iOS 플랫폼별을 사용하면 PanGestureRecognizer 스크롤 보기에서 이동 제스처를 캡처하고 스크롤 보기와 공유할 수 있습니다. 연결된 속성을 true다음으로 설정하여 XAML에서 Application.PanGestureRecognizerShouldRecognizeSimultaneously 사용합니다.

<Application ...
             xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
             ios:Application.PanGestureRecognizerShouldRecognizeSimultaneously="true">
    ...
</Application>

또는 흐름 API를 사용하여 C#에서 사용할 수 있습니다.

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...

Xamarin.Forms.Application.Current.On<iOS>().SetPanGestureRecognizerShouldRecognizeSimultaneously(true);

이 메서드는 Application.On<iOS> 이 플랫폼별이 iOS에서만 실행되도록 지정합니다. 네임스페이스의 메서드 Xamarin.Forms.PlatformConfiguration.iOSSpecificApplication.SetPanGestureRecognizerShouldRecognizeSimultaneously 스크롤 보기의 이동 제스처 인식기가 이동 제스처를 캡처할지, 아니면 스크롤 보기와 팬 제스처를 캡처하고 공유할지 여부를 제어하는 데 사용됩니다. 또한 이 메서드를 Application.GetPanGestureRecognizerShouldRecognizeSimultaneously 사용하여 이동 제스처가 포함된 스크롤 뷰와 공유되는지 여부를 반환할 수 있습니다 PanGestureRecognizer.

따라서 이 플랫폼별 활성화를 사용하면 포함PanGestureRecognizer되는 경우 ListViewListView 제스처를 수신하고 PanGestureRecognizer 처리합니다. 그러나 이 플랫폼별 사용이 비활성화된 상태에서는 팬 제스처가 포함된 PanGestureRecognizerPanGestureRecognizer 경우 ListView 이동 제스처를 캡처하고 처리하며 ListView 이동 제스처를 수신하지 않습니다.