UI Tap Gesture Recognizer不工作不知道它被点击了哪个View

时间:2014-10-30 06:51:41

标签: objective-c iphone ios8 uigesturerecognizer uitapgesturerecognizer

我有6种不同的观点,我给它们标记为1,2,3,4,5,6。我将对象库中的UITapGestureRecogniser添加到了故事板,并通过CTRL +从视图拖动到gestureRecognizers,对其进行了所有6次视图UITapGestureRecogniser。  现在在下面的方法中,我试图通过点击不同的视图获得标记。

 - (IBAction)colorTapRecognizer:(UITapGestureRecognizer *)sender {
        UIView *tappedView= sender.view;
        NSLog(@"%d",tappedView.tag  );

    }

但它总是向我显示相同的标签。即如果我点击它并且它是第一次3,那么通过点击其他视图也是一样的。

1 个答案:

答案 0 :(得分:3)

每个View都需要自己的Gesture Recognizer集。这是一段适合您的代码。

-(void)addTapGesturesToViews
{
    int maxViewTag = 6; // tags must be consective (are in your case)
    for(int i =1; i<= maxViewTag;i++)
    {
        UIView * view = [self.view viewWithTag:i];
        UITapGestureRecognizer * tapGest = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(colorTapRecognizer:)];
        tapGest.numberOfTapsRequired = 1;
        [view addGestureRecognizer:tapGest];
    }

}