Gleichzeitige Schwenkgestenerkennung unter iOS
Wenn eine PanGestureRecognizer
in einer Bildlaufansicht an eine Ansicht angefügt ist, werden alle Schwenkgesten von PanGestureRecognizer
erfasst und nicht an die Bildlaufansicht übergeben. Daher wird die Bildlaufansicht nicht mehr scrollen.
Mit dieser plattformspezifischen iOS-Funktion kann in PanGestureRecognizer
einer Bildlaufansicht die Schwenkbewegung erfasst und mit der Bildlaufansicht gemeinsam verwendet werden. Sie wird in XAML verwendet, indem die Application.PanGestureRecognizerShouldRecognizeSimultaneously
angefügte 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 es über C# mithilfe der Fluent-API verwendet 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 plattformspezifische Nur unter iOS ausgeführt wird. Die Application.SetPanGestureRecognizerShouldRecognizeSimultaneously
-Methode im Xamarin.Forms.PlatformConfiguration.iOSSpecific
-Namespace wird verwendet, um zu steuern, ob eine Schwenkgestenerkennung 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 also diese plattformspezifische Aktivierung aktiviert ist, ListView
PanGestureRecognizer
erhalten sowohl die als auch die ListView
PanGestureRecognizer
die Schwenkbewegung und verarbeiten sie. Wenn diese plattformspezifische Option deaktiviert ist, wird jedoch, wenn ein ListView
eine PanGestureRecognizer
enthält, die PanGestureRecognizer
die Schwenkbewegung erfassen und verarbeiten, und der ListView
empfängt die Schwenkgeste nicht.