Objective c 如何在C4ios中禁用/切换手势?
阅读文档 我知道如何为Objective c 如何在C4ios中禁用/切换手势?,objective-c,uigesturerecognizer,c4,Objective C,Uigesturerecognizer,C4,阅读文档 我知道如何为c4对象成功设置PAN手势。如何禁用PAN手势 使用 [object setUserInteractionEnabled:NO] 。。。禁用所有手势,包括轻触事件和 object.gestureRecognizers = NO 。。。不允许我重新初始化PAN手势 如果有人能与我分享如何在不影响其他手势事件的情况下禁用PAN手势(切换PAN开/关),我将不胜感激。您可以使用gestureForName:方法访问添加到对象中的手势,它返回一个UIgestureRecogni
c4对象成功设置PAN
手势。如何禁用PAN
手势
使用
[object setUserInteractionEnabled:NO]
。。。禁用所有手势,包括轻触事件和
object.gestureRecognizers = NO
。。。不允许我重新初始化PAN
手势
如果有人能与我分享如何在不影响其他手势事件的情况下禁用PAN
手势(切换PAN
开/关),我将不胜感激。您可以使用gestureForName:
方法访问添加到对象中的手势,它返回一个UIgestureRecognitor
对象。从那里,您可以与该手势识别器交互并直接更改其属性
要打开/关闭手势识别器,只需更改其enabled
属性的值
以下是我的作品:
#import "C4WorkSpace.h"
@implementation C4WorkSpace {
UIGestureRecognizer *gesture;
C4Shape *square, *circle;
}
-(void)setup {
square = [C4Shape rect:CGRectMake(0, 0, 100, 100)];
square.center = self.canvas.center;
circle = [C4Shape ellipse:square.frame];
circle.center = CGPointMake(square.center.x, square.center.y + 200);
[self listenFor:@"touchesBegan" fromObject:circle andRunMethod:@"toggle"];
[self.canvas addObjects:@[square, circle]];
[square addGesture:PAN name:@"thePan" action:@"move:"];
gesture = [square gestureForName:@"thePan"];
}
-(void)toggle {
gesture.enabled = !gesture.isEnabled;
if(gesture.enabled == YES) square.fillColor = C4GREY;
else square.fillColor = C4RED;
}
@end
此示例的键部分如下所示:
[square addGesture:PAN name:@"thePan" action:@"move:"];
gesture = [square gestureForName:@"thePan"];
gesture.enabled = !gesture.isEnabled;
请注意,在实现中有一个名为手势的UIGestureRecognitor
变量。我们在第二行中所做的是找到与square
对象关联的PAN
手势,并保留对它的引用
然后,无论何时通过触摸圆进行切换,我们都会执行以下操作:
[square addGesture:PAN name:@"thePan" action:@"move:"];
gesture = [square gestureForName:@"thePan"];
gesture.enabled = !gesture.isEnabled;
也就是说,如果该手势已启用,则将其禁用(反之亦然)
您可以在上查看更多信息。您可以使用gestureForName:
方法访问添加到对象的手势,该方法返回一个uigestureignizer
对象。从那里,您可以与该手势识别器交互并直接更改其属性
要打开/关闭手势识别器,只需更改其enabled
属性的值
以下是我的作品:
#import "C4WorkSpace.h"
@implementation C4WorkSpace {
UIGestureRecognizer *gesture;
C4Shape *square, *circle;
}
-(void)setup {
square = [C4Shape rect:CGRectMake(0, 0, 100, 100)];
square.center = self.canvas.center;
circle = [C4Shape ellipse:square.frame];
circle.center = CGPointMake(square.center.x, square.center.y + 200);
[self listenFor:@"touchesBegan" fromObject:circle andRunMethod:@"toggle"];
[self.canvas addObjects:@[square, circle]];
[square addGesture:PAN name:@"thePan" action:@"move:"];
gesture = [square gestureForName:@"thePan"];
}
-(void)toggle {
gesture.enabled = !gesture.isEnabled;
if(gesture.enabled == YES) square.fillColor = C4GREY;
else square.fillColor = C4RED;
}
@end
此示例的键部分如下所示:
[square addGesture:PAN name:@"thePan" action:@"move:"];
gesture = [square gestureForName:@"thePan"];
gesture.enabled = !gesture.isEnabled;
请注意,在实现中有一个名为手势的UIGestureRecognitor
变量。我们在第二行中所做的是找到与square
对象关联的PAN
手势,并保留对它的引用
然后,无论何时通过触摸圆进行切换,我们都会执行以下操作:
[square addGesture:PAN name:@"thePan" action:@"move:"];
gesture = [square gestureForName:@"thePan"];
gesture.enabled = !gesture.isEnabled;
也就是说,如果该手势已启用,则将其禁用(反之亦然)
你可以在网上查看更多信息