ScrollView Content Touches on iOS (ScrollView Content Touches on iOS)
Un timer implicito viene attivato quando un movimento di tocco inizia in un ScrollView
oggetto in iOS e ScrollView
decide, in base all'azione dell'utente all'interno dell'intervallo del timer, se deve gestire il movimento o passarlo al relativo contenuto. Per impostazione predefinita, iOS ScrollView
ritarda il tocco del contenuto, ma questo può causare problemi in alcune circostanze con il ScrollView
contenuto che non vince il movimento quando dovrebbe. Pertanto, questo specifico della piattaforma controlla se un ScrollView
gestisce un movimento di tocco o lo passa al relativo contenuto. Viene utilizzato in XAML impostando la ScrollView.ShouldDelayContentTouches
proprietà associata su un boolean
valore:
<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>
In alternativa, può essere usato da C# usando l'API Fluent:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...
scrollView.On<iOS>().SetShouldDelayContentTouches(false);
Il ScrollView.On<iOS>
metodo specifica che questa piattaforma verrà eseguita solo in iOS. Il ScrollView.SetShouldDelayContentTouches
metodo, nello spazio dei Xamarin.Forms.PlatformConfiguration.iOSSpecific
nomi , viene usato per controllare se un ScrollView
oggetto gestisce un movimento di tocco o lo passa al relativo contenuto. Inoltre, il SetShouldDelayContentTouches
metodo può essere usato per attivare o disattivare i tocchi di contenuto ritardato chiamando il ShouldDelayContentTouches
metodo per restituire se i tocchi di contenuto sono ritardati:
scrollView.On<iOS>().SetShouldDelayContentTouches(!scrollView.On<iOS>().ShouldDelayContentTouches());
Il risultato è che un oggetto ScrollView
può disabilitare il ritardo di ricezione dei tocchi di contenuto, in modo che in questo scenario riceva Slider
il movimento anziché la Detail
pagina di FlyoutPage
: