1

У меня есть несколько кнопок, расположенных на моем ViewController в области, покрытой UIPageViewControllerGestureRecognizers. Отводы в этой области потребляются UIPageViewController и никогда не доходят до кнопок ниже.Обнаружение событий касания на элементах управления в UIPageViewController в Monotouch

Я читал iPad - PageViewController - Show next view controller on button click и UIPageViewController Gesture recognizers и понял принцип, но не имел предшествующего опыта Obj-C и изо всех сил стараюсь воссоздать эти решения на C#.

Не могли бы вы привести пример того, как это делается в MonoTouch?

ответ

2

Вот как ваша первая ссылка будет переведена на C# с использованием MonoTouch (примечание: untested).

Во-первых вы можете создать свой собственный (не .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; 

Это позволяет вам адаптировать, как будет интерпретировать этот жест. Если он не обрабатывается самим жестом, он должен быть направлен к вашим собственным элементам управления/кнопкам.

+0

Пятно на, poupou, спасибо. +1 для классного оператора возврата. – PoxBlossom

Смежные вопросы