Partager via


Reconnaissance simultanée des mouvements panoramiques sur iOS

Lorsqu’un PanGestureRecognizer affichage est attaché à un affichage à l’intérieur d’une vue de défilement, tous les mouvements panoramiques sont capturés par le PanGestureRecognizer mode de défilement et ne sont pas passés à l’affichage de défilement. Par conséquent, la vue de défilement ne fait plus défiler.

Cette plateforme iOS spécifique permet à une PanGestureRecognizer vue de défilement de capturer et de partager le mouvement panoramique avec l’affichage de défilement. Elle est consommée en XAML en définissant la Application.PanGestureRecognizerShouldRecognizeSimultaneously propriété jointe sur true:

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

Elle peut également être consommée à partir de C# à l’aide de l’API Fluent :

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

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

La Application.On<iOS> méthode spécifie que cette plateforme ne s’exécutera que sur iOS. La Application.SetPanGestureRecognizerShouldRecognizeSimultaneously méthode, dans l’espace Xamarin.Forms.PlatformConfiguration.iOSSpecific de noms, est utilisée pour contrôler si un module de reconnaissance panoramique dans une vue de défilement capture le mouvement panoramique, ou capture et partage le mouvement panoramique avec l’affichage de défilement. En outre, la Application.GetPanGestureRecognizerShouldRecognizeSimultaneously méthode peut être utilisée pour retourner si le mouvement panoramique est partagé avec la vue de défilement qui contient le PanGestureRecognizer.

Par conséquent, avec cette fonctionnalité spécifique à la plateforme, lorsqu’un ListView conteneur contient, PanGestureRecognizerà la fois le ListView mouvement panoramique et le PanGestureRecognizer traitera. Toutefois, avec cette fonctionnalité spécifique à la plateforme désactivée, lorsqu’un ListView conteneur contient, PanGestureRecognizerle PanGestureRecognizer mouvement panoramique capture le mouvement panoramique et le traite, et le ListView ne reçoit pas le mouvement panoramique.