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í.