Пользовательский интерфейс Tap Gesture Recognizer Не работает, не знает, какой вид был нажат

У меня есть 6 разных представлений, и я дал им теги 1,2,3,4,5,6. Я добавил UITapGestureRecogniser из библиотеки объектов на раскадровку и сделал все 6 видов gestureRecognizers с помощью CTRL+перетаскивания из представлений в этот UITapGestureRecogniser. Теперь в следующем методе я пытаюсь получить тег, нажав на разные представления.

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

    }

но он всегда показывает мне один и тот же тег. то есть, если я нажал, и это было 3 в первый раз, то же самое будет и при нажатии на другие представления.


person Asadullah Ali    schedule 30.10.2014    source источник
comment
где ты добавил? Пожалуйста, предоставьте код.   -  person Dharmbir Singh    schedule 30.10.2014
comment
Я добавил его из библиотеки объектов. Я на самом деле бросил его на одно из представлений, а затем просто CTRL + перетащил другие на «Распознаватель жестов касания» на нижней панели.   -  person Asadullah Ali    schedule 30.10.2014
comment
Вы должны использовать другой распознаватель жестов для каждого вида   -  person jcesarmobile    schedule 30.10.2014
comment
так что это означает, что если у вас есть 30 различных пользовательских представлений, например, игральные карты, поэтому мне нужно добавить отдельный распознаватель TapGesture для каждого из них?   -  person Asadullah Ali    schedule 30.10.2014
comment
и какова цель справочных коллекций торговых точек?   -  person Asadullah Ali    schedule 30.10.2014


Ответы (1)


Для каждого представления требуется собственный набор распознавателей жестов. Вот кусок кода, который должен работать для вас.

-(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];
    }

}
person Abdul91    schedule 30.10.2014