Gleichzeitige Verschiebungsgestenerkennung unter iOS
Wenn eine PanGestureRecognizer
-Ansicht in einer Bildlaufansicht an eine Ansicht angefügt ist, werden alle Schwenkbewegungen von dem PanGestureRecognizer
erfasst und nicht an die Bildlaufansicht übergeben. Daher wird der Bildlauf in der Bildlaufansicht nicht mehr gescrollt.
Diese plattformspezifische iOS-Plattform ermöglicht es einer PanGestureRecognizer
Bildlaufansicht, die Verschiebungsgeste mit der Bildlaufansicht zu erfassen und freizugeben. Sie wird in XAML genutzt, indem die angefügte Application.PanGestureRecognizerShouldRecognizeSimultaneously
-Eigenschaft auf true
festgelegt wird:
<Application ...
xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
ios:Application.PanGestureRecognizerShouldRecognizeSimultaneously="true">
...
</Application>
Alternativ kann sie mit der Fluent-API von C# genutzt werden:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...
Xamarin.Forms.Application.Current.On<iOS>().SetPanGestureRecognizerShouldRecognizeSimultaneously(true);
Die Application.On<iOS>
-Methode gibt an, dass diese plattformspezifisch nur unter iOS ausgeführt wird. Die Application.SetPanGestureRecognizerShouldRecognizeSimultaneously
-Methode im Xamarin.Forms.PlatformConfiguration.iOSSpecific
-Namespace wird verwendet, um zu steuern, ob eine Schwenkerkennung in einer Bildlaufansicht die Schwenkbewegung erfasst oder die Schwenkbewegung mit der Bildlaufansicht erfasst und gemeinsam verwendet. Darüber hinaus kann die Application.GetPanGestureRecognizerShouldRecognizeSimultaneously
-Methode verwendet werden, um zurückzugeben, ob die Schwenkbewegung für die Bildlaufansicht freigegeben wird, die den PanGestureRecognizer
enthält:
Wenn diese plattformspezifische Funktion aktiviert ist und ein ListView
ein PanGestureRecognizer
enthält, empfangen sowohl ListView
als auch PanGestureRecognizer
die Schwenkbewegung und verarbeiten sie. Wenn diese plattformspezifische Funktion jedoch deaktiviert ist und ein ListView
ein PanGestureRecognizer
enthält, empfängt und verarbeitet PanGestureRecognizer
die Schwenkbewegung und ListView
empfängt die Schwenkbewegung nicht.