1

UIPageViewController'sでカバーされる領域内のViewControllerにいくつかのボタンが配置されていますGestureRecognizers。この領域のタップはによって消費され、UIPageViewController下のボタンに到達することはありません。

iPad-PageViewController-ボタンクリックとUIPageViewControllerジェスチャレコグナイザーで次のビューコントローラーを表示し、原理を理解しましたが、Obj-Cの経験がなく、C#でこれらのソリューションを再現するのに苦労しています。

誰かがMonoTouchでこれがどのように行われるかの例を教えてもらえますか?

4

1 に答える 1

2

これが、MonoTouchを使用して最初のリンクがC#に変換される方法です(注:未試行)。

まず、次のように独自の(.NET以外の)デリゲートを作成しますUIGestureRecognizer

class MyUIGestureRecognizerDelegate : UIGestureRecognizerDelegate {

    public override bool ShouldReceiveTouch (UIGestureRecognizer recognizer, UITouch touch)
    {
        return (!(touch.View is UIControl));
    }
}

タッチジェスチャが(ボタンを含む)trueに適用されない場合に戻ります。UIControl

次に、に割り当てられているにこのデリゲートを割り当てる必要がありGestureRecognizersますUIPageViewController

MyUIGestureRecognizerDelegate del = new MyUIGestureRecognizerDelegate ();

UIPageViewController pvc = new UIPageViewController ();

foreach (var gr in pvc.GestureRecognizers)
    gr.Delegate = del;

これにより、ジェスチャの解釈方法を調整できます。ジェスチャ自体で処理されない場合は、独自のコントロール/ボタンにルーティングする必要があります。

于 2012-01-20T14:22:25.190 に答える