Касания содержимого ScrollView в iOS
Неявный таймер активируется при начале сенсорного жеста в iOS и ScrollView
принимает решение на основе действия пользователя в ScrollView
диапазоне таймера, следует ли обрабатывать жест или передавать его содержимому. По умолчанию iOS ScrollView
задерживает касания содержимого, но это может вызвать проблемы в некоторых обстоятельствах с ScrollView
содержимым, не выиграв жест, когда он должен. Таким образом, эта платформа определяет, обрабатывает ли ScrollView
сенсорный жест или передает его содержимое. Он используется в XAML, задав ScrollView.ShouldDelayContentTouches
присоединенное свойство значением boolean
:
<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>
Кроме того, его можно использовать из C# с помощью api fluent:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...
scrollView.On<iOS>().SetShouldDelayContentTouches(false);
Метод ScrollView.On<iOS>
указывает, что эта платформа будет работать только в iOS. Метод ScrollView.SetShouldDelayContentTouches
в Xamarin.Forms.PlatformConfiguration.iOSSpecific
пространстве имен используется для управления тем, обрабатывает ли ScrollView
сенсорный жест или передает его содержимому. Кроме того, SetShouldDelayContentTouches
метод можно использовать для переключения задержки касаний содержимого ShouldDelayContentTouches
путем вызова метода, чтобы вернуть, задерживаются ли касания содержимого:
scrollView.On<iOS>().SetShouldDelayContentTouches(!scrollView.On<iOS>().ShouldDelayContentTouches());
Результатом является то, что ScrollView
может отключить задержку получения касаний содержимогоFlyoutPage
, чтобы в этом сценарии Slider
жест получил жест, а не Detail
страницу: