I'm currently working with "Press and hold" on a button, here is my code:
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
}
The problem is since I'm running a toggle method to change a value, all it does is just spamming the method LongPress, how to I cancel or stop the holding after changing the value?
Update
I've managed to get it work, here is my code example:
public void LongPress(UILongPressGestureRecognizer g)
{
if (g.State == UIGestureRecognizerState.Began)
{
if (a == true)
{
a = false;
}
else
{
a = true;
}
}
}
CodePudding user response:
Try to pass a UILongPressGestureRecognizer
as parameter to LongPress
method , and change its State
when you want to stop it .
sample code
public void LongPress(UILongPressGestureRecognizer g)
{
if (a == true)
{
a = false;
}
else
{
a = true;
}
// stop recognizing long press gesture here
g.State = UIGestureRecognizerState.Ended;
}