Обнаружение сенсорных событий на элементах управления в UIPageViewController в Monotouch

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

Я прочитал iPad - PageViewController - Показать следующий контроллер представления на кнопке нажмите и распознаватели жестов UIPageViewController и поймете принцип, но не имеете опыта работы с Obj-C и Я изо всех сил пытаюсь воссоздать эти решения на С#.

Может ли кто-нибудь привести пример того, как это делается в MonoTouch?


person PoxBlossom    schedule 19.01.2012    source источник


Ответы (1)


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

Сначала вы должны создать своего собственного (не .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;

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

person poupou    schedule 20.01.2012