C# 从代码创建手势识别器
我正试图从代码中创建一个手势识别器,但是我无法让它工作,当我执行拖动时,会将一个C# 从代码创建手势识别器,c#,ios,cocoa-touch,xamarin.ios,selector,C#,Ios,Cocoa Touch,Xamarin.ios,Selector,我正试图从代码中创建一个手势识别器,但是我无法让它工作,当我执行拖动时,会将一个未识别的选择器发送到instanceLblDrag是IB的UILabel,它是一个插座。如果我使用一个动作作为识别器的构造函数参数,它可以正常工作,但我希望能够使用选择器方法 以下是我所拥有的: public override void ViewDidLoad () { base.ViewDidLoad (); // Perform any additional se
未识别的选择器发送到instance
LblDrag
是IB的UILabel,它是一个插座。如果我使用一个动作作为识别器的构造函数参数,它可以正常工作,但我希望能够使用选择器方法
以下是我所拥有的:
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");
}
我试图更改添加识别器的视图,但这两种方法都不起作用。这很自然-您添加了错误的目标
UILabel
不响应DragMe
选择器(为什么您认为它会响应?)。您必须将对象添加为实际实现回调方法的手势识别器的目标:
var recognizer = new UIPanGestureRecognizer(this, selector);
@杰夫:没问题。这只是一个合乎逻辑的猜测(我不知道C#,但我很高兴这有帮助。)我找不到任何关于它的文档,无论是C#还是objc,所以我很高兴你的帮助。:)