Reconhecimento simultâneo de gestos panorâmicos no iOS
Quando a PanGestureRecognizer
é anexado a uma exibição dentro de uma exibição de rolagem, todos os gestos de movimento panorâmico são capturados pelo PanGestureRecognizer
e não são passados para a exibição de rolagem. Portanto, a visualização de rolagem não rolará mais.
Essa plataforma iOS específica permite que um PanGestureRecognizer
modo de exibição de rolagem capture e compartilhe o gesto de movimento panorâmico com o modo de exibição de rolagem. Ele é consumido em XAML definindo a propriedade anexada Application.PanGestureRecognizerShouldRecognizeSimultaneously
como true
:
<Application ...
xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
ios:Application.PanGestureRecognizerShouldRecognizeSimultaneously="true">
...
</Application>
Como alternativa, ele pode ser consumido do C# usando a API fluente:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...
Xamarin.Forms.Application.Current.On<iOS>().SetPanGestureRecognizerShouldRecognizeSimultaneously(true);
O método Application.On<iOS>
especifica que essa plataforma específica só será executada no iOS. O Application.SetPanGestureRecognizerShouldRecognizeSimultaneously
método, no Xamarin.Forms.PlatformConfiguration.iOSSpecific
namespace, é usado para controlar se um reconhecedor de gestos panorâmicos em um modo de exibição de rolagem capturará o gesto panorâmico ou capturará e compartilhará o gesto panorâmico com o modo de exibição de rolagem. Além disso, o Application.GetPanGestureRecognizerShouldRecognizeSimultaneously
método pode ser usado para retornar se o gesto de movimento panorâmico é compartilhado com o modo de exibição de rolagem que contém o PanGestureRecognizer
.
Portanto, com esse específico da plataforma habilitado, quando a ListView
contém um PanGestureRecognizer
, tanto o quanto o ListView
PanGestureRecognizer
receberão o gesto de movimento panorâmico e o processarão. No entanto, com esse específico da plataforma desabilitado, quando a ListView
contém um PanGestureRecognizer
, o capturará PanGestureRecognizer
o gesto de movimento panorâmico e o processará, e ListView
não receberá o gesto de movimento panorâmico.