次の方法で共有


iOS での同時パン ジェスチャの認識

PanGestureRecognizer がスクロール ビュー内のビューにアタッチされている場合、すべてのパン ジェスチャは、PanGestureRecognizer によってキャプチャされ、スクロール ビューに渡されません。 したがって、スクロール ビューはスクロールしなくなります。

この .NET Multi-platform App UI (.NET MAUI) iOS プラットフォーム固有の機能を使用すると、PanGestureRecognizer はスクロール ビューでパン ジェスチャをキャプチャし、スクロール ビューと共有できます。 Application.PanGestureRecognizerShouldRecognizeSimultaneously 添付プロパティを true に設定することで、XAML で使用されます。

<Application ...
             xmlns:ios="clr-namespace:Microsoft.Maui.Controls.PlatformConfiguration.iOSSpecific;assembly=Microsoft.Maui.Controls"
             ios:Application.PanGestureRecognizerShouldRecognizeSimultaneously="true">
    ...
</Application>

または、Fluent API を使用して C# から使用することもできます。

using Microsoft.Maui.Controls.PlatformConfiguration;
using Microsoft.Maui.Controls.PlatformConfiguration.iOSSpecific;
...

Application.Current.On<iOS>().SetPanGestureRecognizerShouldRecognizeSimultaneously(true);

Application.On<iOS> メソッドは このプラットフォーム固有の機能が iOS でのみ実行されるように指定します。 Microsoft.Maui.Controls.PlatformConfiguration.iOSSpecific 名前空間内の Application.SetPanGestureRecognizerShouldRecognizeSimultaneously メソッドは、スクロール ビューのパン ジェスチャ認識エンジンがパン ジェスチャをキャプチャするか、またはパン ジェスチャをキャプチャしてスクロール ビューと共有するかを制御するために使用されます。 さらに、Application.GetPanGestureRecognizerShouldRecognizeSimultaneously メソッドを使用して、パン ジェスチャが PanGestureRecognizer を含むスクロール ビューと共有されるかどうかを返すことができます。

したがって、このプラットフォーム固有の機能を有効にすると、ListViewPanGestureRecognizer を含む場合、ListViewPanGestureRecognizer の両方がパン ジェスチャを受け取り、処理します。 ただし、このプラットフォーム固有の機能を無効にすると、ListViewPanGestureRecognizer を含む場合、PanGestureRecognizer でパン ジェスチャがキャプチャされて処理され、ListView はパン ジェスチャを受け取りません。