2013-02-23 1 views
0

Я добавил пользовательский вид в свой rootview и добавил UITapGesture. При вызове 'sender.view' кода UITapGesture он больше не представлен моим пользовательским UIView, но вместо этого 'sender.view' имеет тип UIImageView.UIGesture возвращает UIImageView, а не пользовательский вид

Так что на самом деле делает это трудно для отправки сообщений на мой настраиваемое представление, когда IOS ожидает UIView - предупреждение я получаю: «Несовместимые типы указателей отправки UIView параметру CardView (мой пользовательский вид)

я. думаю, что это связано с цепочкой ответа, в документации говорится: «Когда iOS распознает событие, он передает событие первому объекту, который наиболее подходит для обработки этого события, например, вид, где произошло прикосновение». - О событиях в iOS

Ключевое слово здесь «кажется» - как я могу сказать iOS, что мой пользовательский вид является тем, который должен обрабатывать жест?

Вопрос: Как я могу получить sender.view, чтобы обратиться непосредственно к своему пользовательскому представлению?

Вот код ниже:

//Creates the Card's view 
CardView *cardView = [[CardView alloc]initWithFrame:CGRectMake(0, 0, 67,99)]; 
//For Single Tap 
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleSingleTapGesture:)]; 
[cardView addGestureRecognizer:tapGesture]; 
[self.view addSubview:cardView]; 
+0

Try бросить отправителя в CardView, я думаю, он должен работать –

+0

Да @ Rob попробуйте –

+0

Hossam - спасибо за ответ. Я не уверен, как бросить его и куда его бросить. Я говорю, что CardView - это тип UIImage? Где в коде идет кастинг? Shukran – RichNasser

ответ

1

В handleSingleTapGesture: даст ЕВ (UITapGestureTecongnizer *)sender так бросить так:

CardView *card = (CardView *)sender.view; 
//do you stuff with card