Xamarin.ios PangestureRecognitor的有限区域

Xamarin.ios PangestureRecognitor的有限区域,xamarin.ios,uipangesturerecognizer,Xamarin.ios,Uipangesturerecognizer,是否可以为PangestureRecognitor设置边框,使其只能在有限的区域/视图中平移图像 非常感谢你(穆奇) 您可以为UIPangestureRecognitor实现委托方法。检查手势的位置是否在您感兴趣的范围内。对于should*方法,可以返回false来取消手势。启动手势后,可以通过将State属性设置为Cancelled来取消该手势 公共类手势视图:UIView { 矩形f_界; 公共手势视图(矩形F矩形):基础(矩形) { this.BackgroundColor=UIColor

是否可以为PangestureRecognitor设置边框,使其只能在有限的区域/视图中平移图像


非常感谢你(穆奇)

您可以为UIPangestureRecognitor实现委托方法。检查手势的位置是否在您感兴趣的范围内。对于should*方法,可以返回false来取消手势。启动手势后,可以通过将State属性设置为Cancelled来取消该手势

公共类手势视图:UIView
{
矩形f_界;
公共手势视图(矩形F矩形):基础(矩形)
{
this.BackgroundColor=UIColor.Brown;
UIPANGESTURE识别器pan=新的UIPANGESTURE识别器(这是一个新的选择器(“带手势识别器的PanView”);
此.addgestureignizer(pan);
pan.WeakDelegate=这个;
_边界=新矩形F(0,02000,100);
}
[导出(“带手势识别器的PanView:”)]
void pangestruemovearound(UIpangestruerecognizer p)
{
如果(_bounds.Contains(p.LocationInView(this)))
{
Console.WriteLine(“pangesturemovaround true”);
回来
}
Console.WriteLine(“pangesturemovaround false”);
p、 状态=UIgestureRecognitizerState。已取消;
回来
}
[导出(“手势识别器应开始:”)]
bool应开始(UIgestureRecognitor识别器)
{
if(_bounds.Contains(recognizer.LocationInView(recognizer.View)))
{
Console.WriteLine(“shouldbeagin true”);
返回true;
}
Console.WriteLine(“shouldbeing false”);
返回false;
}
[导出(“手势识别器:shouldReceiveTouch:”)]
公共bool应接收触摸(UIGestureRecognitor识别器,UITouch touch)
{
if(_bounds.Contains(touch.LocationInView(recognizer.View)))
{
Console.WriteLine(“ShouldReceiveTouch true”);
返回true;
}
Console.WriteLine(“ShouldReceiveTouch false”);
返回false;
}
}

您可以为UIPangestureRecognitor实现委托方法。检查手势的位置是否在您感兴趣的范围内。对于should*方法,可以返回false来取消手势。启动手势后,可以通过将State属性设置为Cancelled来取消该手势

公共类手势视图:UIView
{
矩形f_界;
公共手势视图(矩形F矩形):基础(矩形)
{
this.BackgroundColor=UIColor.Brown;
UIPANGESTURE识别器pan=新的UIPANGESTURE识别器(这是一个新的选择器(“带手势识别器的PanView”);
此.addgestureignizer(pan);
pan.WeakDelegate=这个;
_边界=新矩形F(0,02000,100);
}
[导出(“带手势识别器的PanView:”)]
void pangestruemovearound(UIpangestruerecognizer p)
{
如果(_bounds.Contains(p.LocationInView(this)))
{
Console.WriteLine(“pangesturemovaround true”);
回来
}
Console.WriteLine(“pangesturemovaround false”);
p、 状态=UIgestureRecognitizerState。已取消;
回来
}
[导出(“手势识别器应开始:”)]
bool应开始(UIgestureRecognitor识别器)
{
if(_bounds.Contains(recognizer.LocationInView(recognizer.View)))
{
Console.WriteLine(“shouldbeagin true”);
返回true;
}
Console.WriteLine(“shouldbeing false”);
返回false;
}
[导出(“手势识别器:shouldReceiveTouch:”)]
公共bool应接收触摸(UIGestureRecognitor识别器,UITouch touch)
{
if(_bounds.Contains(touch.LocationInView(recognizer.View)))
{
Console.WriteLine(“ShouldReceiveTouch true”);
返回true;
}
Console.WriteLine(“ShouldReceiveTouch false”);
返回false;
}
}
谢谢,“\u bounds.Contains”非常有用;)谢谢,“\u bounds.Contains”非常有用;)