Одновременное распознавание жестов сдвига в iOS

PanGestureRecognizer При присоединении к представлению внутри прокрутки все жесты сдвига фиксируются PanGestureRecognizer и не передаются в представление прокрутки. Таким образом, представление прокрутки больше не будет прокручиваться.

Эта платформа iOS позволяет PanGestureRecognizer в режиме прокрутки записывать и предоставлять общий доступ к жесту сдвига с представлением прокрутки. Он используется в XAML, задав присоединенное Application.PanGestureRecognizerShouldRecognizeSimultaneously свойство следующим trueобразом:

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

Кроме того, его можно использовать из C# с помощью api fluent:

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

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

Метод Application.On<iOS> указывает, что эта платформа будет работать только в iOS. Метод Application.SetPanGestureRecognizerShouldRecognizeSimultaneously в пространстве имен используется для управления тем, будет ли распознаватель жестов сдвига в Xamarin.Forms.PlatformConfiguration.iOSSpecific режиме прокрутки захватывать жест сдвига или записывать и совместно использовать жест сдвига с представлением прокрутки. Кроме того, Application.GetPanGestureRecognizerShouldRecognizeSimultaneously этот метод можно использовать для возврата общего доступа жеста сдвига с представлением прокрутки, содержащим объект PanGestureRecognizer.

Таким образом, с поддержкой этой платформы, когда объект ListView содержит PanGestureRecognizerкак жест сдвига, ListView так и PanGestureRecognizer жест сдвига и обрабатывает его. Однако при отключении для этой платформыPanGestureRecognizer, когда содержится ListView объект, PanGestureRecognizer зафиксирует жест сдвига и обработает его, и он ListView не получит жест сдвига.