UIGesture возвращает UIImageView, а не пользовательское представление
Я добавил пользовательский вид в свой rootview и добавил UITapGesture. При вызове "sender.view" кода UITapGesture он больше не представляется моим пользовательским UIView, а вместо этого "sender.view" имеет тип 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];
1 ответ
В handleSingleTapGesture:
даст тебе (UITapGestureTecongnizer *)sender
так что бросьте так:
CardView *card = (CardView *)sender.view;
//do you stuff with card