2013-04-10 7 views
2

TapGesture распознаватель на нескольких UIImageView не работает, в то время как он обнаруживает последний добавил imageviews жест .. Я сделал это,TapGesture распознаватель на нескольких UIImageView не работает

UITapGestureRecognizer *tapped = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(myFunction:)]; 
tapped.numberOfTapsRequired = 1; 
tapped.delegate = self; 


UIImageView *sample_book1= [[UIImageView alloc]initWithFrame:CGRectMake(70, 135, 100,125) ]; 
sample_book1.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"mathematics.png"]]; 
sample_book1.userInteractionEnabled = YES; 
sample_book1.tag = 0; 
[sample_book1 addGestureRecognizer:tapped]; 
[self.view addSubview:sample_book1]; 

UIImageView *sample_book2= [[UIImageView alloc]initWithFrame:CGRectMake(220, 135, 100,125) ]; 
sample_book2.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"biology.png"]]; 
sample_book2.userInteractionEnabled = YES; 
sample_book2.tag = 1; 
[sample_book2 addGestureRecognizer:tapped]; 
[self.view addSubview:sample_book2]; 

UIImageView *sample_book3= [[UIImageView alloc]initWithFrame:CGRectMake(370, 135, 100,125) ]; 
sample_book3.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"chemistry.png"]]; 
sample_book3.userInteractionEnabled = YES; 
sample_book3.tag = 2; 
[sample_book3 addGestureRecognizer:tapped]; 
[self.view addSubview:sample_book3]; 

Водопроводная жест не работает в sample_book1, sample_book2 .... он работает только в sample_book3 .. Что я делаю неправильно ..

ответ

7

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

[sample_bookX addGestureRecognizer:[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(myFunction:)]]; 

вместо того, чтобы пытаться добавить несколько раз один и тот же GR

Аргумент получен MYFUNCTION: затем будет собственно tapGR, и вы можете добраться до похлопал ImageView по телефону sender.view (при условии, ваша туРипсЫоп подписи выглядеть

- (void) myFunction:(UIGestureRecognizer *)sender 

Приветствия,

+0

@Burel: Фантастический ... Я хочу изображение обращенного изображения. –

+0

Отличный объяснение - спасибо! – daspianist

7

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

+0

Это правильный ответ, просто см ll addendum: http://stackoverflow.com/questions/4747238/can-you-attach-a-uigesturerecognizer-to-multiple-views – Peres

Смежные вопросы