阅读文档这里。
我知道如何成功地为一个PAN设置C4Object手势。但是我如何禁用PAN手势呢?
用..。
[object setUserInteractionEnabled:NO]..。禁用所有手势,包括TAP事件和.
object.gestureRecognizers = NO..。不允许我重新初始化PAN手势。
如果有人能和我分享如何在不影响其他手势事件的情况下禁用PAN手势(打开/关闭PAN ),我们将不胜感激。
发布于 2013-08-12 05:10:49
您可以使用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的gesture变量。在第二行中,我们要做的是找到与PAN对象关联的square手势,并保持对它的引用。
然后,每当我们通过触摸圆圈来切换时,我们做以下操作:
gesture.enabled = !gesture.isEnabled;也就是说,如果启用了手势,那么就禁用它(反之亦然)。
您可以查看更多关于UIGestureRecognizer类引用的内容。
https://stackoverflow.com/questions/18178480
复制相似问题