Одновременное распознавание жестов сдвига в iOS
PanGestureRecognizer
При присоединении к представлению внутри прокрутки все жесты сдвига фиксируются PanGestureRecognizer
и не передаются в представление прокрутки. Таким образом, представление прокрутки больше не будет прокручиваться.
Эта платформа iOS позволяет PanGestureRecognizer
в режиме прокрутки записывать и предоставлять общий доступ к жесту сдвига с представлением прокрутки. Он используется в XAML, задав присоединенное Application.PanGestureRecognizerShouldRecognizeSimultaneously
свойство следующим true
образом:
<Application ...
xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
ios:Application.PanGestureRecognizerShouldRecognizeSimultaneously="true">
...
</Application>
Кроме того, его можно использовать из C# с помощью api fluent:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...
Xamarin.Forms.Application.Current.On<iOS>().SetPanGestureRecognizerShouldRecognizeSimultaneously(true);
Метод Application.On<iOS>
указывает, что эта платформа будет работать только в iOS. Метод Application.SetPanGestureRecognizerShouldRecognizeSimultaneously
в пространстве имен используется для управления тем, будет ли распознаватель жестов сдвига в Xamarin.Forms.PlatformConfiguration.iOSSpecific
режиме прокрутки захватывать жест сдвига или записывать и совместно использовать жест сдвига с представлением прокрутки. Кроме того, Application.GetPanGestureRecognizerShouldRecognizeSimultaneously
этот метод можно использовать для возврата общего доступа жеста сдвига с представлением прокрутки, содержащим объект PanGestureRecognizer
.
Таким образом, с поддержкой этой платформы, когда объект ListView
содержит PanGestureRecognizer
как жест сдвига, ListView
так и PanGestureRecognizer
жест сдвига и обрабатывает его. Однако при отключении для этой платформыPanGestureRecognizer
, когда содержится ListView
объект, PanGestureRecognizer
зафиксирует жест сдвига и обработает его, и он ListView
не получит жест сдвига.