Touches obsahu ScrollView v iOSu
Implicitní časovač se aktivuje, když gesto dotykového ovládání začíná v ScrollView
iOSu a ScrollView
rozhodne se na základě akce uživatele v časovém intervalu, ať už má gesto zpracovat nebo předat jeho obsahu. Ve výchozím nastavení se obsah iOS ScrollView
zpožďuje, ale může to v některých případech způsobit problémy s obsahem ScrollView
, který nevyhraje gesto, když by měl. Proto tato platforma řídí, zda ScrollView
úchyty gesto dotykového ovládání nebo předá jeho obsah. Využívá se v XAML nastavením ScrollView.ShouldDelayContentTouches
připojené vlastnosti na boolean
hodnotu:
<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>
Alternativně ho můžete využívat z jazyka C# pomocí rozhraní FLUENT API:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...
scrollView.On<iOS>().SetShouldDelayContentTouches(false);
Metoda ScrollView.On<iOS>
určuje, že se tato platforma bude spouštět pouze v iOSu. Metoda ScrollView.SetShouldDelayContentTouches
v Xamarin.Forms.PlatformConfiguration.iOSSpecific
oboru názvů slouží k řízení, zda ScrollView
úchyty gesto dotykového ovládání nebo předá jeho obsah. Kromě toho SetShouldDelayContentTouches
lze metodu použít k přepnutí zpoždění obsahu dotyky voláním ShouldDelayContentTouches
metody, která vrátí, zda jsou dotyky obsahu zpožděné:
scrollView.On<iOS>().SetShouldDelayContentTouches(!scrollView.On<iOS>().ShouldDelayContentTouches());
Výsledkem je, že ScrollView
může zakázat zpoždění příjmu obsahu dotek, takže v tomto scénáři Slider
obdrží gesto místo Detail
stránky FlyoutPage
: