在iphone上,手势识别器由于某种原因无法正常工作

Hor*_*son 9 iphone uilabel uigesturerecognizer ios

这是我制作的UILabel子类,但它似乎不起作用.由于某种原因,它不会调用"tappedOn".

gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tappedOn)];
[self addGestureRecognizer:gesture];
[self setUserInteractionEnabled:YES];
Run Code Online (Sandbox Code Playgroud)

你知道为什么会这样吗?

这是tappedOn方法:

-(void)tappedOn
{

NSLog(@"tapped");
if ([self.type isEqualToString: @"load"])
{
    [self.manager.manager loadSavedGameInRow:self.name];
}

if ([self.type isEqualToString: @"save"])
{
    [self.manager.manager saveGameInRow:self.name];
}
}
Run Code Online (Sandbox Code Playgroud)

小智 22

对我来说它有效:

首先设置这个: [self setUserInteractionEnabled:YES];

然后:

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(method:)];
tap.numberOfTapsRequired = 1;

[self addGestureRecognizer:tap];
Run Code Online (Sandbox Code Playgroud)


Jit*_*dra 1

gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tappedOn:)];
[self.view addGestureRecognizer:gesture];
self.UserInteractionEnabled=TRUE;
Run Code Online (Sandbox Code Playgroud)

像这样添加你的方法

- (void) tappedOn:(UIGestureRecognizer*)sender
{
}
Run Code Online (Sandbox Code Playgroud)

试试这个