Xamarin 中的 UILongPressGestureRecognizer IOS

UILongPressGestureRecognizer in Xamarin IOS

我目前正在使用按钮上的“按住”,这是我的代码:

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

    longp = new UILongPressGestureRecognizer(LongPress);
    button.AddGestureRecognizer(longp);
}

public void LongPress()
{
    if (a == true)
    {
       a = false;
    }
    else
    {
       a = true;
    }
    // stop recognizing long press gesture here
}

问题是因为我是 运行 一个更改值的切换方法,它所做的只是向方法 LongPress 发送垃圾邮件,我如何取消或更改值后停止持有?

更新

我已经设法让它工作了,这是我的代码示例:

public void LongPress(UILongPressGestureRecognizer g)
{
    if (g.State == UIGestureRecognizerState.Began)
    {
        if (a == true)
        {
            a = false;
        }
        else
        {
            a = true;
        }
    }
}

尝试将 UILongPressGestureRecognizer 作为参数传递给 LongPress 方法,并在您想要停止它时更改其 State

示例代码

public void LongPress(UILongPressGestureRecognizer g)
{
    if (a == true)
    {
        a = false;
    }
    else
    {
        a = true;
    }

    // stop recognizing long press gesture here
    g.State = UIGestureRecognizerState.Ended; 
}