我正在尝试从代码创建一个手势识别器,但是我无法让它工作,当我执行拖动时,我得到了一个无法识别的选择器发送到实例
。 LblDrag
是来自 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");
}
我试图更改要添加识别器的 View ,但都不起作用。
最佳答案
这很自然 - 您添加了错误的目标。 UILabel
不响应 DragMe
选择器(您为什么认为它响应?)。您必须将该对象添加为实际实现回调方法的手势识别器的目标:
var recognizer = new UIPanGestureRecognizer(this, selector);
关于c# - 从代码创建手势识别器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14314683/