Одновременные распознавания жестов Pan в iOSSimultaneous Pan Gesture Recognition on iOS

Скачать пример Скачать примерDownload Sample Download the sample

Когда PanGestureRecognizer прикреплено к представлению внутри прокрутки, все pan, охватывает жесты PanGestureRecognizer и не передаются представления с прокруткой.When a PanGestureRecognizer is attached to a view inside a scrolling view, all of the pan gestures are captured by the PanGestureRecognizer and aren't passed to the scrolling view. Таким образом больше не прокручивается представления с прокруткой.Therefore, the scrolling view will no longer scroll.

Этот iOS платформы позволяет PanGestureRecognizer в области прокрутки для записи и совместно использовать жест pan с представления с прокруткой.This iOS platform-specific enables a PanGestureRecognizer in a scrolling view to capture and share the pan gesture with the scrolling view. Он используется в XAML, задав Application.PanGestureRecognizerShouldRecognizeSimultaneously вложенное свойство, чтобы true:It's consumed in XAML by setting the Application.PanGestureRecognizerShouldRecognizeSimultaneously attached property to true:

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

Кроме того его можно будет использовать с помощью C# с помощью текучего API:Alternatively, it can be consumed from C# using the fluent API:

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

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

Application.On<iOS> Метод указывает, что этой платформы будет выполняться только на устройствах iOS.The Application.On<iOS> method specifies that this platform-specific will only run on iOS. Application.SetPanGestureRecognizerShouldRecognizeSimultaneously Метод в Xamarin.Forms.PlatformConfiguration.iOSSpecific пространства имен, используется для управления ли распознавателя жестов pan в области прокрутки будет захват жест pan, или записи, так и совместное использование pan жестов с помощью представления с прокруткой.The Application.SetPanGestureRecognizerShouldRecognizeSimultaneously method, in the Xamarin.Forms.PlatformConfiguration.iOSSpecific namespace, is used to control whether a pan gesture recognizer in a scrolling view will capture the pan gesture, or capture and share the pan gesture with the scrolling view. Кроме того Application.GetPanGestureRecognizerShouldRecognizeSimultaneously метод может использоваться для возврата ли жест pan используется совместно с прокруткой представление, содержащее PanGestureRecognizer .In addition, the Application.GetPanGestureRecognizerShouldRecognizeSimultaneously method can be used to return whether the pan gesture is shared with the scrolling view that contains the PanGestureRecognizer.

Таким образом, с помощью этой платформы включен, когда ListView содержит PanGestureRecognizer , оба ListView и PanGestureRecognizer получит жест pan и Обрабатывайте его.Therefore, with this platform-specific enabled, when a ListView contains a PanGestureRecognizer, both the ListView and the PanGestureRecognizer will receive the pan gesture and process it. Однако при использовании этой платформы отключен, если ListView содержит PanGestureRecognizer, PanGestureRecognizer помещается жест pan и обработать его и ListView не будут получать pan жест.However, with this platform-specific disabled, when a ListView contains a PanGestureRecognizer, the PanGestureRecognizer will capture the pan gesture and process it, and the ListView won't receive the pan gesture.