2015-01-21 6 views
2

Я использую Xamarin для iOS и у меня есть настраиваемое представление (наследуется от UIView), и я пытаюсь добавить простой UIPanGestureRecognizer, увидеть это:UIPanGestureRecognizer на заказ View никогда не называется

UIPanGestureRecognizer panGesture = new UIPanGestureRecognizer (() => Console.WriteLine ("Pan"); 
this.AddGestureRecognizer(panGesture); 

Но «Pan «никогда не отображается в консоли:/

Опять же, у меня есть пользовательский вид.

Edit: Когда я двигаю мой код:

UIView myView = new UIView (new RectangleF(0,0,200,200)); 
myView.BackgroundColor = UIColor.Red; 
myView.UserInteractionEnabled = true;  

var recognizer = new UIPanGestureRecognizer ((g) => { 
        Console.WriteLine ("Panning detected"); 
        Console.WriteLine ("Gesture recognizer state: {0}", g.State); 
       }); 

myView.AddGestureRecognizer (recognizer); 

AddSubview (MyView); К UIVIewController это работает: ///// why ???

Должен ли я что-то делать с UIGestureDelegate?!

ответ

0

также вы должны добавить ниже вещей.

Objective C:

[panRecognizer setMinimumNumberOfTouches:1]; 
[panRecognizer setMaximumNumberOfTouches:1]; 

Установить эту вещь в соответствии с синтаксисом Xamarin.

Также попробуйте это.

var panGesture = new UIPanGestureRecognizer (() => Console.WriteLine ("Pan"); 
this.view.AddGestureRecognizer(panGesture); 

См. Ниже ссылку для Обновлено Pangesture in Xamarin.

http://www.slideshare.net/Xamarin/whats-new-in-xamarinios-miguel

+0

Во-первых, спасибо за Ваш ответ. Во-вторых, верно? Потому что я не могу установить эти значения ... – gran33

+0

да, вы должны установить это значение, чтобы panRecognizer знал, когда ему нужно начать работу :) –

+0

Но документация говорит об этом по умолчанию 1:/ – gran33

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