Reconocimiento de gestos simultáneos de desplazamiento lateral en iOS
Cuando se adjunta PanGestureRecognizer a una vista dentro de una vista de desplazamiento, todos los gestos de desplazamiento se capturan mediante PanGestureRecognizer y no se pasan a la vista de desplazamiento. Por lo tanto, la vista de desplazamiento ya no se desplazará.
Este .NET Multi-platform App UI (.NET MAUI) iOS específico de la plataforma permite que PanGestureRecognizer en una vista de desplazamiento capture y comparta el gesto de desplazamiento lateral con la vista de desplazamiento. Se consume en XAML estableciendo la propiedad adjunta Application.PanGestureRecognizerShouldRecognizeSimultaneously
en true
:
<Application ...
xmlns:ios="clr-namespace:Microsoft.Maui.Controls.PlatformConfiguration.iOSSpecific;assembly=Microsoft.Maui.Controls"
ios:Application.PanGestureRecognizerShouldRecognizeSimultaneously="true">
...
</Application>
Como alternativa, se puede consumir desde C# mediante la API fluida:
using Microsoft.Maui.Controls.PlatformConfiguration;
using Microsoft.Maui.Controls.PlatformConfiguration.iOSSpecific;
...
Application.Current.On<iOS>().SetPanGestureRecognizerShouldRecognizeSimultaneously(true);
El método Application.On<iOS>
especifica que esta plataforma específica solo se ejecutará en iOS. El método Application.SetPanGestureRecognizerShouldRecognizeSimultaneously
, en el espacio de nombres Microsoft.Maui.Controls.PlatformConfiguration.iOSSpecific
, se usa para controlar si un reconocedor de gestos de desplazamiento lateral en una vista de desplazamiento capturará el gesto de desplazamiento lateral, o capturará y compartirá el gesto de desplazamiento lateral con la vista de desplazamiento. Además, el método Application.GetPanGestureRecognizerShouldRecognizeSimultaneously
se puede usar para devolver si el gesto de desplazamiento lateral se comparte con la vista de desplazamiento que contiene PanGestureRecognizer.
Por lo tanto, con esta plataforma específica habilitada, cuando ListView contiene PanGestureRecognizer,ListView y PanGestureRecognizer recibirán el gesto de desplazamiento lateral y lo procesarán. Sin embargo, con esta plataforma específica deshabilitada, cuando ListView contiene PanGestureRecognizer, PanGestureRecognizer capturará el gesto de desplazamiento lateral y lo procesará, y ListView no recibirá el gesto de desplazamiento lateral.