Sdílet prostřednictvím


Rozpoznávání gest současného posouvání v iOSu

PanGestureRecognizer Když je připojen k zobrazení uvnitř zobrazení pro posouvání, jsou všechna gesta posouvání zachycena PanGestureRecognizer a nepředá se do zobrazení pro posouvání. Proto se zobrazení pro posouvání už nebude posouvat.

Tato platforma pro iOS umožňuje PanGestureRecognizer v zobrazení pro posouvání zachytit a sdílet gesto posouvání se zobrazením posouvání. Využívá se v XAML nastavením Application.PanGestureRecognizerShouldRecognizeSimultaneously připojené vlastnosti na true:

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

Alternativně ho můžete využívat z jazyka C# pomocí rozhraní FLUENT API:

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

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

Metoda Application.On<iOS> určuje, že se tato platforma bude spouštět pouze v iOSu. Metoda Application.SetPanGestureRecognizerShouldRecognizeSimultaneously v Xamarin.Forms.PlatformConfiguration.iOSSpecific oboru názvů slouží k řízení, zda rozpoznávání gest posouvání v zobrazení posouvání bude zachytit gesto posouvání nebo zachytit a sdílet gesto posouvání s zobrazením posouvání. Kromě toho lze metodu Application.GetPanGestureRecognizerShouldRecognizeSimultaneously použít k vrácení, zda je gesto posouvání sdíleno s posouváním zobrazení, které obsahuje PanGestureRecognizer.

Díky této platformě specifické pro tuto platformu, pokud ListView obsahuje PanGestureRecognizer, a to jak ListView a bude PanGestureRecognizer přijímat gesto posouvání a zpracovat ho. Pokud však tato platforma je zakázaná, pokud ListView obsahuje PanGestureRecognizer, PanGestureRecognizer bude zachytit gesto posunu a zpracovat ho a ListView nebude přijímat gesto posouvání.