无法使滑动手势工作

时间:2011-05-12 09:40:48

标签: xamarin.ios

我尝试为用户向左和向右滑动进行滑动手势。

幸运的是,我在使用MonoTouch和.NET / C#的专业iPhone编程中找到了一个有用的例子。第292页识别手势和本文。 但是,当我在模拟器中运行此代码时,没有任何反应。我错过了什么?

请你能帮我做这个工作吗?

我使用的代码可以通过以下链接下载。 http://www.7749tutor.com/code/iPad06.zip 请看一下MyViewController.cs文件的第31行

期待您的回音。

2 个答案:

答案 0 :(得分:8)

我为UIView实例提供了更简单的类扩展方法:View Extension

你可以像使用它一样:

View.Swipe(UISwipeGestureRecognizerDirection.Right).Event += (s, r) =>
    new UIAlertView("Swipe Test", "Swipe " + r.Direction.ToString(), null, "Ok")
        .Show();

您不再需要在项目中添加丑陋的代码以进行滑动!

答案 1 :(得分:4)

我在以下一个观点中就是这样做的:

(在我的班级定义中)

public static Selector RightSwipeSelector
{
    get
    {
        return new Selector("HandleRightSwipe");
    }
}

public class SwipeRecogniserDelegate : UIGestureRecognizerDelegate
{
    public override bool ShouldReceiveTouch (UIGestureRecognizer recognizer, UITouch touch)
    {
        return true;
    }
}

[Export("HandleRightSwipe")]
public void HandleRightSwipe(UISwipeGestureRecognizer recogniser)
{
    Debug.WriteLine("Got a right swipe.");
}

(在ViewDidLoad内)

    UISwipeGestureRecognizer sgrRight=new UISwipeGestureRecognizer();

    sgrRight.AddTarget(this,RightSwipeSelector);

    sgrRight.Direction=UISwipeGestureRecognizerDirection.Right;

    sgrRight.Delegate=new SwipeRecogniserDelegate();

    View.AddGestureRecognizer(sgrRight);