Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Um temporizador implícito é disparado ScrollView quando um gesto de toque começa em um ScrollView no iOS e decide, com base na ação do usuário dentro do intervalo do temporizador, se ele deve manipular o gesto ou passá-lo para seu conteúdo. Por padrão, o iOS ScrollView atrasa os toques de conteúdo, mas isso pode causar problemas em algumas circunstâncias, pois o ScrollView conteúdo não ganha o gesto quando deveria. Portanto, esse específico da plataforma controla se a manipula um gesto ScrollView de toque ou o passa para seu conteúdo. Ele é consumido em XAML definindo a propriedade anexada ScrollView.ShouldDelayContentTouches como um boolean valor:
<FlyoutPage ...
xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core">
<FlyoutPage.Flyout>
<ContentPage Title="Menu" BackgroundColor="Blue" />
</FlyoutPage.Flyout>
<FlyoutPage.Detail>
<ContentPage>
<ScrollView x:Name="scrollView" ios:ScrollView.ShouldDelayContentTouches="false">
<StackLayout Margin="0,20">
<Slider />
<Button Text="Toggle ScrollView DelayContentTouches" Clicked="OnButtonClicked" />
</StackLayout>
</ScrollView>
</ContentPage>
</FlyoutPage.Detail>
</FlyoutPage>
Como alternativa, ele pode ser consumido do C# usando a API fluente:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...
scrollView.On<iOS>().SetShouldDelayContentTouches(false);
O método ScrollView.On<iOS> especifica que essa plataforma específica só será executada no iOS. O ScrollView.SetShouldDelayContentTouches método, no namespace, é usado para controlar se a manipula ScrollView um gesto Xamarin.Forms.PlatformConfiguration.iOSSpecific de toque ou o passa para seu conteúdo. Além disso, o SetShouldDelayContentTouches método pode ser usado para alternar os toques de conteúdo atrasados chamando o ShouldDelayContentTouches método para retornar se os toques de conteúdo estão atrasados:
scrollView.On<iOS>().SetShouldDelayContentTouches(!scrollView.On<iOS>().ShouldDelayContentTouches());
O resultado é que um ScrollView pode desativar o atraso no recebimento de toques de conteúdo, de modo que, neste cenário, o Slider recebe o gesto em vez Detail da página do FlyoutPage:
