Rozpoznávání gest pro souběžné posouvání v iOS

Ukázka stažení Stažení ukázky

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

Tato specifická platforma pro iOS umožňuje PanGestureRecognizer v zobrazení pro posouvání zachytit a sdílet gesto posouvání s zobrazením pro posouvání. Je spotřebované v jazyce 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ě se dá využít z C# pomocí rozhraní Fluent API:

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

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

Application.On<iOS>Metoda určuje, že tato specifická platforma bude spuštěna pouze v iOS. _PlatformConfiguration_iOSSpecific_Application_SetPanGestureRecognizerShouldRecognizeSimultaneously_ Xamarin_Forms _IPlatformElementConfiguration_ Xamarin_Forms _PlatformConfiguration_iOS_ Xamarin_Forms _Application__System_Boolean_ "data-LINKTYPE =" absolutní cesta ">Application.SetPanGestureRecognizerShouldRecognizeSimultaneously metoda v Xamarin.Forms.PlatformConfiguration.iOSSpecific oboru názvů slouží k určení toho, zda má nástroj pro rozpoznávání gesta posouvání v zobrazení s posouváním zachytit gesto posunu, nebo zachytit a sdílet gesto posouvání se zobrazením pro posouvání. Kromě toho Xamarin_Forms _PlatformConfiguration_iOSSpecific_Application_GetPanGestureRecognizerShouldRecognizeSimultaneously_ Xamarin_Forms _IPlatformElementConfiguration_ Xamarin_Forms _PlatformConfiguration_iOS_ Xamarin_Forms _Application__ "data-LINKTYPE =" absolutní cestu ">Application.GetPanGestureRecognizerShouldRecognizeSimultaneously metoda může být použita k vrácení, zda je gesto posunu sdíleno se zobrazením pro posouvání, které obsahuje PanGestureRecognizer .

Proto pokud je tato možnost specifická pro konkrétní platformu, když ListView obsahuje PanGestureRecognizer , a, dostanou jak i, tak ListViewPanGestureRecognizer gesto posunu a zpracuje ho. V případě, že je tato platforma specifická pro konkrétní platformu, ale v případě ListViewPanGestureRecognizer , že obsahuje, PanGestureRecognizer zachytí gesto posouvání a zpracuje ho a ListView obdrží gesto posouvání.