Riconoscimento simultaneo dei movimenti di panoramica in iOS

Download Sample Scaricare l'esempio

Quando un oggetto PanGestureRecognizer è collegato a una visualizzazione all'interno di una visualizzazione di scorrimento, tutti i movimenti di panoramica vengono acquisiti da PanGestureRecognizer e non vengono passati alla visualizzazione di scorrimento. Pertanto, la visualizzazione di scorrimento non scorrerà più.

Questa piattaforma iOS specifica della piattaforma consente a in PanGestureRecognizer una visualizzazione di scorrimento di acquisire e condividere il movimento di panoramica con la visualizzazione di scorrimento. Viene utilizzata in XAML impostando la Application.PanGestureRecognizerShouldRecognizeSimultaneously proprietà associata su true:

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

In alternativa, può essere usato da C# usando l'API Fluent:

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

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

Il Application.On<iOS> metodo specifica che questa piattaforma verrà eseguita solo in iOS. Il Application.SetPanGestureRecognizerShouldRecognizeSimultaneously metodo, nello spazio dei Xamarin.Forms.PlatformConfiguration.iOSSpecific nomi, viene usato per controllare se un riconoscimento movimento panoramica in una visualizzazione di scorrimento acquisisce il movimento di panoramica o acquisisce e condivide il movimento di panoramica con la visualizzazione di scorrimento. Inoltre, il Application.GetPanGestureRecognizerShouldRecognizeSimultaneously metodo può essere usato per restituire se il movimento di panoramica è condiviso con la visualizzazione di scorrimento che contiene l'oggetto PanGestureRecognizer.

Di conseguenza, con questa piattaforma abilitata, quando un ListView oggetto contiene un PanGestureRecognizeroggetto , e ListViewPanGestureRecognizer riceverà il movimento di panoramica ed elaborarlo. Tuttavia, con questa piattaforma specifica disabilitata, quando un ListView oggetto contiene un PanGestureRecognizeroggetto , PanGestureRecognizer acquisisce il movimento di panoramica e lo elabora e non ListView riceverà il movimento di panoramica.