UIGesture返回UIImageView而不是自定义视图

时间:2013-02-23 01:54:34

标签: ios objective-c uitapgesturerecognizer responder-chain

我已将自定义视图添加到我的rootview并添加了UITapGesture。当调用UITapGesture代码的'sender.view'时,它不再由我的自定义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 个答案:

答案 0 :(得分:1)

handleSingleTapGesture: (UITapGestureTecongnizer *)sender会给你CardView *card = (CardView *)sender.view; //do you stuff with card 如此投射:

{{1}}