从代码创建手势识别器

时间:2013-01-14 07:36:37

标签: c# ios cocoa-touch xamarin.ios selector

我正在尝试从代码创建一个手势识别器,但是我无法让它工作,当我执行拖动时我得到unrecognised selector sent to instanceLblDrag是来自IB的UILabel,它是一个出口。如果我使用Action作为识别器的构造函数参数,它可以正常工作,但我希望能够使用选择器方法。

这就是我所拥有的:

    public override void ViewDidLoad ()
    {
        base.ViewDidLoad ();

        // Perform any additional setup after loading the view, typically from a nib.
        var selector = new MonoTouch.ObjCRuntime.Selector("DragMe");
        var recognizer = new UIPanGestureRecognizer(LblDrag,selector);
        View.AddGestureRecognizer(recognizer);
    }

    [Export("DragMe")]
    protected void DragMe ()
    {
        Console.WriteLine ("Drag");
    }

我试图更改添加识别器的视图,但都不起作用。

1 个答案:

答案 0 :(得分:2)

这很自然 - 你正在添加错误的目标。 UILabel没有响应DragMe选择器(为什么你会这样做?)。您必须将对象添加为实际实现回调方法的手势识别器的目标:

var recognizer = new UIPanGestureRecognizer(this, selector);