Reconocimiento simultáneo de gestos de movimiento panorámico en iOS

Descargar ejemploDescargar el ejemplo

Cuando se adjunta a PanGestureRecognizer una vista dentro de una vista de desplazamiento, todos los gestos de movimiento panorámico se capturan mediante PanGestureRecognizer y no se pasan a la vista de desplazamiento. Por lo tanto, la vista de desplazamiento ya no se desplazará.

Esta plataforma específica de iOS permite que en PanGestureRecognizer una vista de desplazamiento capture y comparta el gesto de movimiento panorámico con la vista de desplazamiento. Se consume en XAML estableciendo la Application.PanGestureRecognizerShouldRecognizeSimultaneously propiedad trueadjunta en :

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

Como alternativa, se puede consumir desde C# mediante la API fluida:

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

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

El Application.On<iOS> método especifica que esta plataforma específica solo se ejecutará en iOS. El Application.SetPanGestureRecognizerShouldRecognizeSimultaneously método , en el Xamarin.Forms.PlatformConfiguration.iOSSpecific espacio de nombres , se usa para controlar si un reconocedor de gestos de movimiento panorámico en una vista de desplazamiento capturará el gesto de panorámica, o capturará y compartirá el gesto de movimiento panorámico con la vista de desplazamiento. Además, el Application.GetPanGestureRecognizerShouldRecognizeSimultaneously método se puede usar para devolver si el gesto de movimiento panorámico se comparte con la vista de desplazamiento que contiene .PanGestureRecognizer

Por lo tanto, con esta plataforma específica de la plataforma habilitada, cuando un ListView objeto contiene , PanGestureRecognizery ListViewPanGestureRecognizer el recibirá el gesto de movimiento panorámico y lo procesará. Sin embargo, con esta plataforma específica de la plataforma deshabilitada, cuando ListView contiene un PanGestureRecognizerelemento , PanGestureRecognizer capturará el gesto de movimiento panorámico y lo procesará, y no ListView recibirá el gesto de movimiento panorámico.