Funkcja ScrollView dotyka zawartości w systemie iOS
Niejawny czasomierz jest wyzwalany po rozpoczęciu gestu dotykowego w ScrollView systemie iOS, a ScrollView decyzja zależy od akcji użytkownika w ramach przedziału czasomierza, niezależnie od tego, czy powinien obsługiwać gest, czy przekazywać go do jego zawartości. Domyślnie system iOS ScrollView opóźnia dotknięcie zawartości, ale może to powodować problemy w niektórych okolicznościach z zawartością ScrollView , która nie wygrywa gestu, gdy powinna. W związku z tym ten wieloplatformowy interfejs użytkownika aplikacji platformy .NET (.NET MAUI) kontroluje, czy ScrollView obsługuje gest dotykowy, czy przekazuje go do jego zawartości. Jest on używany w języku XAML przez ustawienie dołączonej ScrollView.ShouldDelayContentTouches
boolean
właściwości na wartość:
<FlyoutPage ...
xmlns:ios="clr-namespace:Microsoft.Maui.Controls.PlatformConfiguration.iOSSpecific;assembly=Microsoft.Maui.Controls">
<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>
Alternatywnie można go używać z poziomu języka C# przy użyciu płynnego interfejsu API:
using Microsoft.Maui.Controls.PlatformConfiguration;
using Microsoft.Maui.Controls.PlatformConfiguration.iOSSpecific;
...
scrollView.On<iOS>().SetShouldDelayContentTouches(false);
Metoda ScrollView.On<iOS>
określa, że ta platforma będzie działać tylko w systemie iOS. Metoda ScrollView.SetShouldDelayContentTouches
w Microsoft.Maui.Controls.PlatformConfiguration.iOSSpecific
przestrzeni nazw służy do kontrolowania, czy ScrollView uchwyt gestu dotykowego, czy przekazuje go do jego zawartości. Ponadto SetShouldDelayContentTouches
metoda może służyć do przełączania opóźniania dotykania zawartości przez wywołanie ShouldDelayContentTouches
metody w celu zwrócenia, czy dotknięcia zawartości są opóźnione:
scrollView.On<iOS>().SetShouldDelayContentTouches(!scrollView.On<iOS>().ShouldDelayContentTouches());
Wynikiem jest to, że ScrollView element może wyłączyć opóźnienie odbierania dotknięcia zawartości, tak aby w tym scenariuszu Slider gest odbierał gest, a nie Detail
stronę elementu FlyoutPage: