阅读文档here。
我知道如何为PAN
成功设置C4Object
手势。我如何禁用PAN
手势?
使用...
[object setUserInteractionEnabled:NO]
...禁用所有手势,包括TAP
个事件和......
object.gestureRecognizers = NO
...不允许我重新初始化PAN
手势。
如果有人可以与我分享如何禁用PAN
手势(切换PAN
开启/关闭)而不影响其他手势事件,我们将不胜感激。
答案 0 :(得分:1)
您可以使用gestureForName:
方法访问添加到对象的手势,该方法返回UIGestureRecognizer
个对象。从那里,您可以与该手势识别器进行交互并直接更改其属性。
要打开/关闭手势识别器,您只需更改其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"];
注意,在实现中有一个名为UIGestureRecognizer
的{{1}}变量。我们在第二行上执行的操作是找到与gesture
对象关联的PAN
手势并保留对它的引用。
然后,每当我们通过触摸圆圈进行切换时,我们会执行以下操作:
square
也就是说,如果手势已启用,则禁用它(反之亦然)。
上查看更多内容