3

PageCurlトランジションを備えたUIPageViewControllerは、ページのシミュレーションに最適ですが、デフォルトのGestureRecognizer(UIPanGestureRecognizer)は1本の指のイベントにのみ応答します。他のイベントの上に2本の指のイベントを追加したいと思います。

別のPanGestureRecognizerを現在のUIPageViewControllerインスタンスに追加するにはどうすればよいですか?この新しいPanGestureRecognizerは、元のUIPanGestureRecognizerを無効にすることなく、2本の指でパンがタッチするのを待つ必要があります。

必要なのは、ユーザーが1本ではなく2本の指でページをスクロールした場合に、追加のカスタムイベントを発生させる方法ですが、1本の指のイベントが呼び出されたようにページをスクロールする必要があります。

MonoTouchでこれを行うにはどうすればよいですか?

前もって感謝します。

4

1 に答える 1

10

私は自分で問題を解決しました。UIPageViewControllerには、ジェスチャレコグナイザーの配列が含まれています。1つ目は、取得する必要のあるもので、「MaximumNumberOfTouches」プロパティを1から2に変更します。コードは次のとおりです。

UIPageViewController pageController = new UIPageViewController (UIPageViewControllerTransitionStyle.PageCurl, UIPageViewControllerNavigationOrientation.Horizontal, UIPageViewControllerSpineLocation.Min);

UIPanGestureRecognizer pan_gesture_recognizer = (UIPanGestureRecognizer) pageController.GestureRecognizers[0];

pan_gesture_recognizer.MaximumNumberOfTouches = 2;

次に、ページめくりイベント(私の場合は「UIPageViewControllerDataSource」を継承するカスタムクラス)を処理するコード内で、次のコマンドを使用して現在のタッチ数にアクセスできます。

int number_of_touches = pageController.GestureRecognizers [0].NumberOfTouches;

この値を使用して、それに応じて動作します。

于 2011-11-22T10:57:15.650 に答える