Jednoczesne rozpoznawanie gestów pan w systemie iOS
Gdy element PanGestureRecognizer
jest dołączony do widoku wewnątrz widoku przewijania, wszystkie gesty przesuwania są przechwytywane przez PanGestureRecognizer
element i nie są przekazywane do widoku przewijania. W związku z tym widok przewijania nie będzie już przewijany.
Ta platforma systemu iOS umożliwia PanGestureRecognizer
przechwytywanie i udostępnianie gestu przewijania w widoku przewijania za pomocą widoku przewijania. Jest on używany w języku XAML przez ustawienie dołączonej Application.PanGestureRecognizerShouldRecognizeSimultaneously
właściwości na wartość true
:
<Application ...
xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
ios:Application.PanGestureRecognizerShouldRecognizeSimultaneously="true">
...
</Application>
Alternatywnie można go używać z poziomu języka C# przy użyciu płynnego interfejsu API:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...
Xamarin.Forms.Application.Current.On<iOS>().SetPanGestureRecognizerShouldRecognizeSimultaneously(true);
Metoda Application.On<iOS>
określa, że ta platforma będzie działać tylko w systemie iOS. Metoda Application.SetPanGestureRecognizerShouldRecognizeSimultaneously
, w Xamarin.Forms.PlatformConfiguration.iOSSpecific
przestrzeni nazw, służy do kontrolowania, czy rozpoznawanie gestów przesuwania w widoku przewijania przechwytuje gest pan lub przechwytuje i udostępnia gest patelni z widokiem przewijania. Ponadto można użyć metody w celu zwrócenia, Application.GetPanGestureRecognizerShouldRecognizeSimultaneously
czy gest przesuwania jest udostępniany z widokiem przewijania zawierającym PanGestureRecognizer
element .
W związku z tym, w przypadku włączenia tej platformy, gdy element ListView
zawiera , zarówno ListView
, jak i PanGestureRecognizer
otrzyma gest pan i PanGestureRecognizer
przetworzy go. Jednak po wyłączeniu tej platformy, gdy element ListView
zawiera element , PanGestureRecognizer
funkcja przechwytuje gest patelni i przetwarza go, a ListView
nie otrzyma PanGestureRecognizer
gestu pan.