TapGestureRecognizer没有调用选择器

时间:2015-11-06 17:42:38

标签: ios objective-c iphone

所以我有一个自定义视图,我在viewcontroller的for循环中创建了许多。在创建它们时,我在每个方法上调用这个方法:

-(void)setUpStuff{
    //Random setup code
    [self setUserInteractionEnabled:YES];
    tapGesture = [[UITapGestureRecognizer alloc]initWithTarget:self   action:@selector(tileSelected:)];
    tapGesture.numberOfTapsRequired = 1;
    tapGesture.numberOfTouchesRequired = 1;
    [self addGestureRecognizer:tapGesture];
}

这是它应该调用的选择器:

-(void)tileSelected{
    NSLog(@"Why am I not working?");
    [self.delegate tileSelected:self];
}

值得一提的是,这个customView中嵌入了一个imageView和标签。我已经尝试将手势识别器添加到imageView并确保将imageView带到最前面,然而,这也不起作用..任何想法?

3 个答案:

答案 0 :(得分:1)

您的选择器调用错误

它应该是:

tapGesture = [[UITapGestureRecognizer alloc]initWithTarget:self   action:@selector(tileSelected)];

没有:

答案 1 :(得分:0)

您需要设置视图的用户交互启用所需的所有内容,您需要在其中添加手势,并且您的选择器在方法末尾包含:,这意味着您需要在方法中添加参数或仅从选择器的末尾删除:

答案 2 :(得分:0)

您可以将tileSelected func更改为:`

-(void)tileSelected:(UITapGestureRecognizer*)gesture{
    NSLog(@"Why am I not working?");
   [self.delegate tileSelected:self];
}